メソッドを「メゾット」だと思ってた奴集合
■ このスレッドは過去ログ倉庫に格納されています
0038デフォルトの名無しさん
2006/08/07(月) 15:59:28二項演算子をオーバーロードするなら、引き数は最低一つ(+メンバ)必要。
逆にそれを超える引き数があったとしても、明示的に呼ぶ以外に使えない関数になるだけ。
#但し、型に関してはいくらでもバリエーションを増やせる。
例えばあるクラスを実装するとき、
class Foo {
public:
bool operator==(class rhs);
};
だけあればFoo bar, baz; に対してbool res1 = bar == baz;と書ける。
しかし、const Foo cbar = bar;に対してbool res2 = cbar == baz;はエラーになる。
上記クラスに
bool operator==(const class & rhs) const;
と追加すれば、エラーではなくなる。
#勿論、res1算出時とres2算出時で呼ばれる関数は違う。
仮に上記クラスに
bool operator==(const class & par1, const class & par2) const;
を追加しても、三項演算子ではないのでこの関数は==の置き換えとしては使えない。
■ このスレッドは過去ログ倉庫に格納されています