代码之家  ›  专栏  ›  技术社区  ›  David Johnstone

解释这个C++操作符定义

  •  3
  • David Johnstone  · 技术社区  · 15 年前

    我在C++类中定义了以下操作符 StringProxy :

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

    a)这是什么?这是如何工作的?我理解操作符重载的概念,但它们通常看起来像 X operator+(double i) .

    b)给出 斯特林代理 ,我怎样才能用这个接线员 m_string ?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Joey Adams    15 年前

    这是一种转换方法。要获取m_字符串,只需使用显式强制转换: (std::string)stringProxy 执行转换。根据上下文(例如,如果您要分配给字符串),您可能可以不使用强制转换。

        2
  •  2
  •   Puppy    15 年前

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