我正在阅读C++中的思考。我对该书中显示的以下代码片段感到困惑。继承自C++中的字符串
class MyString: public string, public Object {
public:
~MyString() {
cout << "deleting string: " << *this << endl;
}
MyString(string s) : string(s) {}
};
我很困惑*this
。 this
是一个指向MyString对象本身的指针。 为什么*this
作为初始化字符串解除引用? 为了使我的问题更清楚,我举一个例子:
Mystring* x = new string("Hello");
delete x;
我不列出完整的代码。如果运行完整代码,则输出为:
删除字符串:hello。
这意味着*这=“你好”。
不是一个好主意,而且该代码不应该编译。 – chris
不要从'std :: string'公开继承。 –
你的问题是什么? –