-1

我有一个具有以下定义的函数:

virtual bool Process(wtdaFileHandler &daHandler, wtdaGather &daGather);

this 函数中的所有代码路径都返回 abool并且我肯定调用了这个函数,而不是子类中的一个。以下代码在发布标题中产生错误:

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++ 项目。

4

3 回答 3

9

你需要去掉这个分号:

if (process.Process(daLFDFileHandler, daGather));
                                                ^

分号将if条件从后面的块中分离出来,然后将其解释为范围,后跟一个 orphan else

于 2012-06-11T20:49:43.557 回答
2

if (process.Process(daLFDFileHandler, daGather)); 去除那个 ; 如果只有

于 2012-06-12T06:30:21.603 回答
1

行中有不必要的分号:if (process.Process(daLFDFileHandler, daGather));

您需要将其删除以获得所需的输出。

于 2014-04-17T04:29:53.797 回答