我有一个具有以下定义的函数:
virtual bool Process(wtdaFileHandler &daHandler, wtdaGather &daGather);
this函数中的所有代码路径都返回一个bool
,我肯定在调用这个函数,而不是子类中的函数。以下代码在发布标题中生成错误:
wtdaLFDProcess process;
// call some methods to do initialize process and args.
if (process.Process(daLFDFileHandler, daGather));
{
retval = 0;
}
else
{
retval = LFD_FILE_LOCK_ERROR;
cout << "Could not obtain file lock for processing." << endl;
WTDA_STATUS(3, "Error...Stopping" );
return;
}
任何人都能解释一下吗?也许这是我不知道的C ++的一些警告?对我来说完全是无稽之谈。这个错误无疑是指其他的。我已经建立起来确保它不仅仅是智能感知。这是一个Win32 C ++项目。
答案 0 :(得分:9)
你需要丢掉这个分号:
if (process.Process(daLFDFileHandler, daGather));
^
分号将if
条件与以下块分离,然后将其解释为范围,后跟孤立else
。
答案 1 :(得分:2)
if(process.Process(daLFDFileHandler,daGather)); 除掉 ;如果只有
结束答案 2 :(得分:1)
行中有不必要的半冒号:if(process.Process(daLFDFileHandler,daGather));
您需要将其删除才能获得所需的输出。