【发布时间】:2017-09-15 16:08:02
【问题描述】:
我有一个模仿整数行为的类。它有以下重载:
class myInt
{
...
operator int() const { return val; }
operator bool() const { return 0 != val; }
operator myInt *() { assert(0); return NULL; } // Cast to pointer not supported
...
private:
int val;
}
当我如下使用它时:
myInt i = 0;
if (i) ...
它命中了指针转换中的断言。
为什么 C++ 选择 this 而不是 if 中的 bool 运算符?
干杯,
伊恩
【问题讨论】:
标签: c++ class if-statement boolean operator-overloading