继承自std :: string或运算符重载

JGC*_*JGC 2 c++ string class operator-overloading

我想要一个像下面这样的课程:

Class Test {
  Test();
  ~Test();
  ...
}
Run Code Online (Sandbox Code Playgroud)

我希望能够使用以下声明:

std::string str;
Test t;
str = t;
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我应该覆盖to_string吗?如果是,似乎无法从std :: string类继承.或者我必须覆盖特殊运算符?指针分配怎么样?如下:

std::string str;
Test* t = new Test();
str = t;
Run Code Online (Sandbox Code Playgroud)

Tar*_*ama 7

您可以提供用户定义的转换运算符std::string:

class Test {
  //...
public:
  operator std::string () const {
    return /*something*/;
  }
};
Run Code Online (Sandbox Code Playgroud)

这将允许将Test对象隐式转换为a std::string.

  • `test :: operator std :: string()const`只是我的2c (2认同)