修改的
仍然不知道问题是什么。看起来好像我有多个文件,但我确实没有。无论如何,我改名为.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回归。有什么帮助吗?