2

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

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

通常返回类型在方法的前面。如果有人可以解释此声明的作用以及有关此声明的详细信息,我将不胜感激

4

2 回答 2

3

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

operator type() const;

wheretype代表一个类型。在您的示例中,它用于将 class 的值隐式转换Xstring.

于 2013-10-10T06:37:07.857 回答
3

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

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

另外,看看这个问题

于 2013-10-10T06:37:12.397 回答