是否可以让类对象返回真/假值,所以我可以这样做:
MyClass a;
...
if (a)
do_something();
我可以通过重载 !运算符(operator):
class MyClass {
...
bool operator!() const { return !some_condition; };
...
}
main()
MyClass a;
...
if (!a)
do_something_different();
但我还没有找到一种方法来重载“空”运算符。当然,使用 == 运算符来检查 true/false 也是可以的,实际上这也是我到目前为止所做的。
最佳答案
重载 void * cast 运算符:
operator void * () const { return some_condition; };
这就是流的工作方式,允许您说:
if ( cin ) {
// stream is OK
}
使用 void * 而不是 bool 可以防止在某些上下文中错误地使用强制转换,例如算术,这是不希望的。当然,除非您想在这些情况下使用它。
关于c++ - 如何从类对象返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3434240/