这里有什么C ++运算符重载?

时间:2016-04-02 00:05:10

标签: c++ operator-overloading

此代码重载的运算符是什么?它看起来不像()运算符的正确语法。

class Example
{
public:
  operator bool() const;
...
};

它用于模拟布尔成员变量,如下所示:

class Container
{
  public:
    Example ex;
}

void func()
{
  Container c;

  if (c.ex)
  {
  ...
  }
}

请注意,在没有您希望重载()运算符的括号的情况下使用ex。

2 个答案:

答案 0 :(得分:4)

这是operator boolimplicit conversion operator允许您的类在布尔上下文中使用(如if)。

答案 1 :(得分:2)

这是user-defined conversion 它定义了一个参与所有隐式和显式转换的用户定义转换函数。