0
std::string s = t;

この後、sとtは同じアドレスを指していると思います。

一度t削除すると、s空にもなります。ディープ コピーを作成するにはどうすればよいですか?

4

2 に答える 2

7

免責事項:tも であると想定しstd::stringています。間違っている場合は訂正してください。

この後、sとtはアドレスを指していると思います。

それらはポインターではありません。

t が削除されると、s も空になります

t削除できないか、削除した場合、それが問題です。削除しないでくださいt。自動的に範囲外になります。

コードでは、std::stringのコピー コンストラクターを使用します。これは、名前が示すように、元の文字列のコピーを作成します。

于 2012-06-20T14:20:31.970 に答える
1

これは正しくありません。文字列の完全に別のコピーです。一方が削除されても、もう一方はまだ存在します。代入演算子はまさにこれらをコピーする方法です。

于 2012-06-20T14:19:58.850 に答える