17項 operator=では、自分自身へ代入するケースをチェックしよう
operator=では、自分自身へ代入するケースをチェックしよう
自分自身への代入をするときに代入演算子が呼び出され、予期していない解放が行われることがあります。
もっとも一般的な対策として、オブジェクトのアドレスを調べる方法があります。
C &operator=(const C &rhs) { if(this == &rhs) return *this; .... }
この問題の対策は、クラスごとに実装者が決める必要があります。