如何设置 c++ 类的布尔值?

How to set the boolean value for a c++ class?

本文关键字:布尔值 c++ 何设置 设置      更新时间:2023-10-16

我想知道如何为类设置布尔值。 我在其他人的代码中看到了这一点,但我自己不知道该怎么做。格式将如下所示:

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;
}

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

class myClass{
public:
explicit operator bool() const { /* ... */ }
};

最好将转换explicit以避免意外转换。在if语句中使用它很好,因为这被认为是一个显式上下文。

我看到你的类设计可以改进。 您可以只创建对象的pointer,而不是创建本地对象,这隐式地照顾,并且您不会陷入隐式转换的混乱。

对于boolean值[如果你确实需要它],你可以直接将bool作为任何其他逻辑的类成员。这直接在代码中表达意图。

class myClass{
...
bool isOn;
public:
bool getIsOn(){
return isOn;
}
};

司机:

int main(int argc, char **argv){
std::unique_ptr<myClass> obj =  std::make_unique<myClass>();
if(obj){
//do stuff
}
//...
if(!obj){
//do other stuff
}
return 0;
}