可能的重复:
C++中的运算符重载为int+obj
我有一个类A
和一个重载的operator+
。我的问题是,我希望能够以以下两种方式使用求和。
A a;
a + 5;
和
5 + a;
如何使+
过载才能做到这一点?我知道我们可以重载++
来执行后增量和前增量(++x
和x++
),那么我如何模拟上述能力呢?
您将运算符定义为非成员:
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
用于防止在标头中定义运算符时多次定义符号。