我有我的课,在那里我重载了 !
运算符:
class obj
{
public:
bool operator!() const
{ return this->str.length() == 0; }
private:
string str;
};
使用 !
运算符我想检查 obj
有效性,所以:
obj o;
// if o is not a valid object
if(!o)
cerr << "Error";
现在我想有可能做到这一点:
// if o is a valid object
if(o)
cout << "OK";
我该怎么办?
最佳答案
使用 C++11,您可以通过 explicit operator bool
来做到这一点:
explicit operator bool() const {
return !!*this;
}
如果您需要将对象显式转换为 bool
(由 if
语句自动完成),则会调用此运算符。该实现通过在接收方对象上调用您的 operator !
来工作,然后返回相反的结果。
希望这对您有所帮助!
关于c++ - 设计一个可以在 if 语句中测试的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11266550/