私は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;
完全なコードは記載しません。完全なコードを実行すると、出力は次のようになります。
文字列の削除: こんにちは。
これは *this = "こんにちは" を意味します。