文法:
返り値の型 クラス名::operator#(引数リスト) { ... } 返り値の値 operator#(引数リスト) { ... }
operatorキーワードは演算子をオーバーロードするのに使用します。上記の文法説明のシャープ記号(#)はオーバーロードする演算子を表します。もしもクラスの一部であればクラス名を指定します。単項演算子であればパラメータリストは空になります。二項演算子であれば、右辺値のオペランドがパラメータリストに入ります。左辺値のオブジェクトはthisとして渡されます。クラスメンバーではない演算子オーバーロード関数を作成する場合には、左辺値のオペランドが最初の引数に、右辺値のパラメータが二番目の引数になります。
#, ##, ., :, .*, ?などのトークンはオーバーロードすることはできません。
関連トピック: this