2017年10月30日
《その99》 参照を返す演算子
参照を返す演算子
組込み演算子の中で、例えば
前置増分演算子 ++
前置減分演算子 --
複号代入演算子 +=, -=, *=, /=, %=
等は、参照を返却する演算子です。
そのことは、次の結果からも分かります。
int a = 0;
++a ; cout << a << '\n'; // 1
++(++a) ; cout << a << '\n'; // 3
--a ; cout << a << '\n'; // 2
--(--a) ; cout << a << '\n'; // 0
--(++a) ; cout << a << '\n'; // 0
(a += 100) += 100; cout << a << '\n'; // 200
(a -= 70) -= 30 ; cout << a << '\n'; // 100
(a *= 10) *= 5 ; cout << a << '\n'; // 5000
(a /= 5) /= 125 ; cout << a << '\n'; // 8
(a %= 3) %= 2 ; cout << a << '\n'; // 0
一方、
後置増分演算子 ++
後置減分演算子 ++
等の場合は、
(a++)++; // エラー
(a--)--; // エラー
となることから、参照ではなく値を返却することが分かります。
以上のような組込み演算子の定義に準じて、例えばクラス C 用の増分演算子関数を定義する場合には
前置増分演算子関数 : C& operator++();
後置増分演算子関数 : C operator--(int);
のように返却値を設定するようにします。
※ 後置増分演算子関数の int型の仮引数は、前置・後置を区別するためのダミーです。
--
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6912617
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック