質問するログイン新規登録

回答編集履歴

2

誤字修正

2019/10/31 09:39

投稿

fana
fana

スコア12285

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  * AllocSample(LPCWSTR, LPCWSTR)が使われた場合:指定された領域をデストラクタで勝手にdelete[]しようとするので大問題.(素直にSetStr_1()とSetStr_2()を呼べば良いと思う)
2
2
  * コピーコンストラクタを使った場合:デストラクタでコピー元が使っていた領域を勝手にdelete[]しようとするので大問題.同じ領域に多重にdelete[]するのはダメ.
3
- * (今は述が無いだけかもしれないけども)operator=も面倒みてあげないとコピーコンストラクタと同じ結果になるので注意が必要.
3
+ * (今は述が無いだけかもしれないけども)operator=も面倒みてあげないとコピーコンストラクタと同じ結果になるので注意が必要.
4
4
 
5
5
  あと,SetStr_1()とSetStr_2()では,引数のnullチェックを入れると良いかと.

1

operator=の話を追記

2019/10/31 09:39

投稿

fana
fana

スコア12285

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  * AllocSample(LPCWSTR, LPCWSTR)が使われた場合:指定された領域をデストラクタで勝手にdelete[]しようとするので大問題.(素直にSetStr_1()とSetStr_2()を呼べば良いと思う)
2
2
  * コピーコンストラクタを使った場合:デストラクタでコピー元が使っていた領域を勝手にdelete[]しようとするので大問題.同じ領域に多重にdelete[]するのはダメ.
3
+ * (今は既述が無いだけかもしれないけども)operator=も面倒みてあげないとコピーコンストラクタと同じ結果になるので注意が必要.
3
4
 
4
5
  あと,SetStr_1()とSetStr_2()では,引数のnullチェックを入れると良いかと.