読者です 読者をやめる 読者になる 読者になる

演算子オーバーロードのメンバ or 非メンバ

C++

プログラミング言語C++』
 11.3.1 メンバ、非メンバ演算子

私は、オブジェクトの表現を直接表現する関数を最小限に抑えている。
そのためには、第1引数の値を変更する性質を持つ演算子(たとえば+=)だけをクラスのメンバとして定義すればよい。
そうすれば、引数の値に応じて新しい値を生成するだけの演算子(たとえば+)は、クラスの外で定義でき、クラスの実装に含まれる基本演算子を利用できる。

つまり、分類するとこんな感じかな



・メンバ

=
+=
-=
++
--
[]
->
->*

・非メンバ

==
!=
<
>
<=
>=
+
-
*
/