如何为 C++ 类设置布尔值?

hag*_*bor 2 c++ class

我想知道如何为类设置布尔值。我在其他人的代码中看到过这个,但我自己不知道怎么做。格式将是这样的:

class myClass{
   //...
};
myClass getClass(){
  myClass myclass;
  //...
  return myclass;
}

int main(int argc, char **argv){
  myClass myclass;
  myclass = getClass();
  if(myclass){
    //do stuff
  }
  //...
  if(!myclass){
    //do other stuff
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

cig*_*ien 5

您需要bool为您的类提供一个转换函数,如下所示:

class myClass{
   public:
   explicit operator bool() const { /* ... */ }
};
Run Code Online (Sandbox Code Playgroud)

最好进行转换explicit以避免意外转换。在if语句中使用它很好,因为它被认为是一个明确的上下文。