まくまくC/C++ノート
演算子のオーバーロードの勘所メモ
2005-01-08

C++ 演算子の勘所

  • obj[n] = 100; とした場合は、operator[] の戻り値に代入される。
  • a + b は、a.operator+(b) を意味する。コードでそのように記述して呼び出すことも可能。
  • デフォルトのコピーコンストラクタは、単純にすべてのメンバをコピーする。この動きでよい場合は、これをそのまま使うべき。
  • コピーコンストラクタを定義する場合は、リファレンスを引数で受け取るように実装する。

前置インクリメント、後置インクリメント

MyClass& operator++();  // 前置インクリメント
MyClass operator++(int);  // 後置インクリメント
  • ++obj は、obj.operator++() とするのと同じ。
  • obj++ は、obj.operator++(0) とするのと同じ。また、obj.operator++(100) としても同じ。

単項演算子の一覧

  • +=
  • -=
  • *=
  • /=
  • %=
  • ^=
  • &=
  • |=
2005-01-08