这里重载了什么 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 bool
,implicit conversion operator 允许您的 class 在布尔上下文中使用(如 if
)。
这段代码重载了什么运算符?它看起来不像 () 运算符的正确语法。
class Example
{
public:
operator bool() const;
...
};
用来模拟一个布尔型成员变量,像这样:
class Container
{
public:
Example ex;
}
void func()
{
Container c;
if (c.ex)
{
...
}
}
请注意,使用 ex 时没有括号,您希望重载 () 运算符。
那是一个user-defined conversion.
它定义了一个用户定义的转换函数,参与所有的隐式和显式转换。
这是 operator bool
,implicit conversion operator 允许您的 class 在布尔上下文中使用(如 if
)。