operator
読み:オペレーター
外語:operator
C++の予約語の一つ。
特徴
C++
演算子を関数として表現する場合に用いる。
例えば=演算子を独自の処理としたい場合は「operator=」の名で関数を定義することになる。このような手法を、演算子のオーバーロードという。
C++標準仕様では、次の演算子をオーバーロードできる。
- +
- -
- *
- /
- %
- ^
- !
- =
- <
- >
- +=
- -=
- ^=
- &=
- |=
- <<
- >>
- <<=
- <=
- >=
- &&
- ||
- ++
- --
- ()
- []
- new
- delete
- &
- |
- ~
- *=
- /=
- %=
- >>=
- ==
- !=
- ,
- ->
- ->*
C++でよく使われる、入出力ストリームに対する<<や>>は、演算子のオーバーロードによって実現されている。
C++11
C++11では、ユーザー定義直定数の関数定義に使用する。
例えば、raw形式の直定数は、次のように定義することができる。
Example operator""_Suffix(const char *str_literal);
これを、次のように使うことができる。
Example var = 12345_Suffix;
この処理は、「operator""_Suffix("12345")と記述した場合と等価の動作をすることになる。
operatorの後に書く演算子を表わす部分は、""から始まり、実際の直定数名が続く。直定数名はC++11当初規格では、常に_(アンダースコア)から始まらなければならない。
再検索