0

重複の可能性:
C++ での int + obj としての演算子のオーバーロード

Aオーバーロードされたクラスがありoperator+ます。私の問題は、次の2つの方法で合計を使用できるようにしたいということです。

A a;

a + 5;

5 + a;

これを行うにはどうすればオーバーロード+できますか? ++post と pre の両方のインクリメント (++xおよび) を実行するためにオーバーロードできることはわかってx++いますが、上記の機能をシミュレートするにはどうすればよいでしょうか?

4

1 に答える 1

4

オペレーターを非メンバーとして定義します。

class A
{
   int operator + (int x) const
   { 
       return 42;
   }
};

inline int operator + (int x, const A& a)
{
   return a+x;  //calls a.operator +(x)
}

inlineヘッダーで演算子を定義する場合にシンボルを複数回定義するのを防ぐためにあります。

于 2012-11-02T14:30:23.493 に答える