我遇到了以下代码,该类的方法让我感到困惑
class X
{
......
operator string () const {return "X"}
......
}
通常返回类型在方法的前面。如果有人可以解释此声明的作用以及有关此声明的详细信息,我将不胜感激
转换运算符是一种特殊的成员函数,它将类类型的值转换为其他类型的值。它通常看起来像这样:
operator type() const;
wheretype
代表一个类型。在您的示例中,它用于将 class 的值隐式转换X
为string
.
这不是以一种奇怪的方式operator()
返回 astring
编写的(正如您可能认为的那样),它是一个隐式转换运算符,可用于将X
类型转换为string
类型:
X a;
string B = static_cast<string>(a);
另外,看看这个问题。