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

标签 c++ string class operator-overloading

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

Class Test {
  Test();
  ~Test();
  ...
}

我希望能够使用以下语句:

std::string str;
Test t;
str = t;

我该怎么办?我应该重写 to_string 吗?如果是,则似乎无法从 std::string 类继承。 或者我必须覆盖特殊运算符(operator)? 指针赋值呢?如下所示:

std::string str;
Test* t = new Test();
str = t;

最佳答案

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

class Test {
  //...
public:
  operator std::string () const {
    return /*something*/;
  }
};

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

关于c++ - 继承自 std::string 或运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35431970/

相关文章:

c++ - 为什么在 C++ 中的字符串变量的 cout 中显示奇怪的字符?

java - 解释 Java 字符串

php - 永久设置私有(private)类变量 PHP

java - 当单词不以 "qu"开头时,如何使此方法返回 false ?

javascript - 我如何引用刚刚用 Javascript 制作的特定 html 元素并获取其值?

C++类和虚方法

c++ - 在类之外声明 C++ 方法?

C++ 数组值不变

c++ - 使用 C++ 的多线程和并行进程

c++ - 你能在 C++ 中判断一个函数在运行时是否是纯虚拟的吗