- C++相談室 part116 [転載禁止]©2ch.net
258 :デフォルトの名無しさん[sage]:2015/03/23(月) 11:51:57.29 ID:octrM0VV - >>257
やるべきことはそれの逆だ。
|
- C++相談室 part116 [転載禁止]©2ch.net
265 :デフォルトの名無しさん[sage]:2015/03/23(月) 12:55:42.31 ID:octrM0VV - >>259
foo& operator =(const foo& src) { foo tmp(src); //コピーコンストラクタ tmp.swap(*this); //情報入れ換え return *this; } というイディオム
|
- C++相談室 part116 [転載禁止]©2ch.net
267 :デフォルトの名無しさん[sage]:2015/03/23(月) 14:17:51.12 ID:octrM0VV - >>266
代入ではなく入れ換え(swap)。 たとえば大きな配列をぶら下げたポインタだとしても、個々の要素を相互コピーなどせずポインタ値だけすげ替えればよい。 std::swapとかでぐぐってみれば?
|
- C++相談室 part116 [転載禁止]©2ch.net
268 :デフォルトの名無しさん[sage]:2015/03/23(月) 14:18:47.27 ID:octrM0VV - >>266
そのswapにはconstはダメ
|