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