我有一个课程A
,其中有operator+
重载。我的问题是我希望能够通过以下两种方式使用求和。
A a;
a + 5;
和
5 + a;
如何重载+
才能执行此操作?我知道我们可以重载++
来执行post和pre增量(++x
和x++
),那么我如何模拟上述功能呢?
答案 0 :(得分: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
用于防止在标题中定义运算符时多次定义符号。