<分区>
Possible Duplicate:
Operator Overloading in C++ as int + obj
我有一个类 A
,它有一个重载的 operator+
。我的问题是我希望能够通过以下两种方式使用求和。
A a;
a + 5;
和
5 + a;
如何重载 +
才能做到这一点?我知道我们可以重载 ++
来执行后增量和预增量(++x
和 x++
),那么我该如何模拟还有以上能力吗?
标签 c++
<分区>
Possible Duplicate:
Operator Overloading in C++ as int + obj
我有一个类 A
,它有一个重载的 operator+
。我的问题是我希望能够通过以下两种方式使用求和。
A a;
a + 5;
和
5 + a;
如何重载 +
才能做到这一点?我知道我们可以重载 ++
来执行后增量和预增量(++x
和 x++
),那么我该如何模拟还有以上能力吗?
最佳答案
您将运算符(operator)定义为非成员:
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
用于防止在标题中定义运算符时多次定义符号。
关于c++ - 如何重载加法运算符以执行交换计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197240/