2011-10-23 10 views

答えて

3

あなたがoperator<swapような何かを考えているならば(それはひどく厳しいか必須ではありませんが)、親指のルールがあります:

機能は、あなたのクラスのパブリックインターフェイスへのアクセスを必要とする場合は、作りますそれは自由な非メンバ関数です。それ以外の場合は、それをメンバー関数にします。 (代替として、friendの空き関数が考えられます)

演算子のオーバーロードの場合、オペランドの少なくとも1つがユーザー定義型である必要があります。

フリー関数の設計上の利点は、適用可能なクラスごとに演算子のバージョンを実装する場合は、M * Nではなく、テンプレートを作成してM + Nの複雑さを得ることができることです。これは、あなたの状況に関連する場合とそうでない場合があります。

Nawaz's very fine answerも参照してください。

+0

お返事ありがとう、非常に役に立ちます – flumpb

関連する問題