解释这个C ++运算符定义

时间:2010-05-13 01:54:39

标签: c++ operator-overloading

我在名为StringProxy的C ++类中定义了以下运算符:

operator std::string&()
{
    return m_string;
}

a)这是什么以及如何运作?我理解运算符重载的想法,但它们通常看起来像X operator+(double i)

b)给定StringProxy的实例,如何使用此运算符获取m_string

2 个答案:

答案 0 :(得分:3)

这是一种转换方法。要获取m_string,只需使用显式强制转换:(std::string)stringProxy即可执行转换。根据上下文(例如,如果您分配给字符串),您可以在没有演员表的情况下完成。

答案 1 :(得分:2)

这是演员。它们采用运算符T()的形式,并在自定义类型之间启用转换。您可以通过简单地将std :: string分配给常规字符串或引用来获取它。