无法理解此陈述 - 运算符后返回类型

时间:2013-10-10 06:31:59

标签: c++ c++98

我遇到了以下代码,该类的方法让我感到困惑

class X
{
    ......
    operator string () const {return "X"}
    ......
}

通常,返回类型位于方法的前面。如果有人能够解释这个陈述的作用以及有关此陈述的详细信息,我将不胜感激

2 个答案:

答案 0 :(得分:3)

转换运算符是一种特殊的成员函数,它将类类型的值转换为某种其他类型的值。它通常看起来像这样:

operator type() const;

其中type代表一种类型。在您的示例中,它用于将类X的值隐式转换为string

答案 1 :(得分:3)

这不是operator(),它以奇怪的方式返回string(正如您可能认为的那样),它是一个隐式转换运算符,可用于转换X键入string类型:

X a;
string B = static_cast<string>(a);

另外,请查看this question