如何重载加法运算符以进行交换计算



可能的重复:
C++中的运算符重载为int+obj

我有一个类A和一个重载的operator+。我的问题是,我希望能够以以下两种方式使用求和。

A a;
a + 5;

5 + a;

如何使+过载才能做到这一点?我知道我们可以重载++来执行后增量和前增量(++xx++),那么我如何模拟上述能力呢?

您将运算符定义为非成员:

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用于防止在标头中定义运算符时多次定义符号。

最新更新