我想知道如何设置类的布尔值。 我在别人的代码中看到过这个,但我不知道自己怎么做。格式是这样的:
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 { /* ... */ }
};
最好将转换设置为显式
,以避免意外转换。 在if
语句中使用它很好,因为这被认为是显式上下文。
我看你的课堂设计还可以改进。 不创建本地对象,您可以只创建对象的指针
,这隐式地很小心,您不会陷入隐式转换的混乱。
对于一个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;
}