此代码重载的运算符是什么?它看起来不像()运算符的正确语法。
class Example
{
public:
operator bool() const;
...
};
它用于模拟布尔成员变量,如下所示:
class Container
{
public:
Example ex;
}
void func()
{
Container c;
if (c.ex)
{
...
}
}
请注意,在没有您希望重载()运算符的括号的情况下使用ex。
答案 0 :(得分:4)
这是operator bool
,implicit conversion operator允许您的类在布尔上下文中使用(如if
)。
答案 1 :(得分:2)
这是user-defined conversion 它定义了一个参与所有隐式和显式转换的用户定义转换函数。