C++ ()演算子のオーバーロード

()演算子のオーバーロードの話。()演算子には、関数呼び出しの引数の部分に相当するものと型変換にかかわるものの二種類があります。

任意の型 operator()(任意の引数);      // 関数呼び出し
[型指定なし] operator 変換後の型( );  // 自分を"変換後の型"に変換

関数呼び出しの方は、任意の引数のところに「…」も指定できる模様。つまり、可変個引数の関数のようにふるまうことができる。ただ。クラスのメンバ関数として使うのはちょっと難しそう。(自分の力量がないだけ…)
型変換の方は重宝しそうだが独特の宣言の仕方なので注意。なお、return文で返却するのは「変換後の型」のオブジェクトです。

コメント

コメントする

CAPTCHA