我的问题是: 错误是否恰好出现在无法忽略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();
*/
}
非常感谢提前!
答案 0 :(得分:1)
*D->spellCheck(...)
首先调用D->spellCheck
,然后尝试取消引用其返回值。由于它返回void
,因此您无法取消引用返回值。
删除*
。