ziguzagu.org

"operator="を書くときは…

C++で"operator=“を書くときの基本三原則。というか、こういう基本をぽかっと忘れるから成長しないんだ…、という自戒メモ。

  • *thisへのリファレンスを返す
  • すべてのデータメンバに代入する
  • 自分自身へ代入するケースをチェックする
String& String::operator=(const String& rhs)
{
    if (this != &rhs) {    // 自分自身への代入チェック
        // すべてのデータメンバに代入
    }

    return *this;
}

Effective C++ 【改訂第2版】アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming series