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

What C++ operator is being overloaded here?

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

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

用来模拟一个布尔型成员变量,像这样:

class Container
{
  public:
    Example ex;
}

void func()
{
  Container c;

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

请注意,使用 ex 时没有括号,您希望重载 () 运算符。

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

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