类方法返回bool,但编译器将其视为void返回

时间:2014-03-08 06:48:26

标签: c++ compiler-errors g++ return-type

修改

仍然不知道问题是什么。看起来好像我有多个文件,但我确实没有。无论如何,我改名为.h和.cc,并将这些课程重命名为自己。实际上没有改变任何代码,但现在问题已经消失。

我想摆脱这个问题,因为我无法看到它在将来帮助任何人。显然是我的一个地方错误。

我从main函数调用一个方法,并在if语句中使用boolean return。该方法被声明为bool返回,但编译器似乎认为它是一个void返回。我已经尝试将bool更改为int并更改if评估,但编译器似乎仍然认为它是一个void函数。我不知道出了什么问题。

类定义中的方法减速(作为公共)

       bool check_online();

类cc文件中的方法定义

bool Icarus::check_online()
{
        char ret = 0x00;
          //check if bluetooth adapter exists
        if(! input)
        {
                mvwaddstr(feedback,1,1,"COULD NOT OPEN rfcomm0 FOR SERVICE");
                wrefresh(feedback);
                getch();
                return(0);
        }
              //check if Daedalus is online
        if(send_cr())
        {
                mvwaddstr(feedback,1,1,"Daedalus is Online        ");
                wrefresh(feedback);
                return(1);
        }
        else
        {
                mvwaddstr(feedback,1,1,"Daedalus is Offline       ");
                wrefresh(feedback);
                return(0);
        }
}

在main中调用方法。

if(driver.check_online() == false)
{
        getch();
        cleanup();
}

导致错误

$ g++ -g icarus.cc main.cc -o icarus -lncurses -lpthread
main.cc: In function ‘int main()’:
main.cc:34:30: error: invalid operands of types ‘void’ and ‘bool’ to binary ‘operator==’

我理解编译器错误意味着什么,但我不明白为什么它会被抛出。这个功能显然是一个bool回归。有什么帮助吗?

0 个答案:

没有答案