C ++ void值不应该被忽略,因为它应该是(不试图分配一个空值......)

时间:2015-12-01 01:29:47

标签: c++ compiler-errors

我的问题是: 错误是否恰好出现在无法忽略void值的位置,还是出现在内部发生此错误的函数调用中?

例如,我遇到的具体问题......

在我的main.cpp中,我有以下声明和函数调用:

Dictionary * D = new Dictionary(&dictionaryFile, dictionaryName);
ifstream checkFile;
...
*D->spellCheck(&checkFile, fileName, &cout);

此处的函数调用给出错误:

"错误:无法忽略空值,因为它应该是"

这个特定的函数调用是否尝试使用void值,或者它是否在Dictionary.cpp中的函数中定义如下:

void Dictionary::spellCheck(ifstream * checkFile, string fileName, std::ostream * out){
    _report.setFileName(fileName);
    string end = "\n";
    int words = 0;
    int wrong = 0;
    string word;
    char currChar;
    while(*checkFile >> word){
        currChar = checkFile->get();
        while(currChar != ' ' && currChar != ',' && currChar != '.'){
            word += currChar;
            currChar = checkFile->get();
        }
        *out << word << end;
        word.clear();
    }
    /*
    _report.setWordsRead(words);
    _report.setWordsWrong(wrong);
    _report.printReport();
    */
}

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

*D->spellCheck(...)首先调用D->spellCheck,然后尝试取消引用其返回值。由于它返回void,因此您无法取消引用返回值。

删除*