我想要一个像下面这样的类:
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/