复用算术运算符重载复合赋值运算符
时间: 2023-09-22 17:11:48 浏览: 118
复数类的多种运算符重载
复合赋值运算符是一种简化算术运算符的写法,可以实现在原变量的基础上进行运算并重新赋值。例如,x += y 相当于 x = x + y。
在C++中,我们可以使用运算符重载的方式来定义复合赋值运算符。具体地,我们需要在类中重载对应的算术运算符,并返回一个引用,这样就可以在运算符后面接上等号和另一个操作数,实现复合赋值运算。
例如,我们可以定义一个类MyInt,重载加法运算符和复合赋值加法运算符:
```
class MyInt {
public:
MyInt(int n) : val(n) {}
MyInt& operator+=(const MyInt& other) {
val += other.val;
return *this;
}
MyInt operator+(const MyInt& other) const {
return MyInt(val + other.val);
}
private:
int val;
};
```
在上述代码中,我们定义了一个MyInt类,其中包含一个整型成员变量val。重载了加法运算符和复合赋值加法运算符,使得对MyInt对象进行加法运算时可以使用这两个运算符。
下面是一个使用MyInt类的例子:
```
MyInt a(1), b(2), c(3);
a += b; // 等价于 a = a + b;
c = a + b; // c的值为4
```
在上述代码中,我们首先将b加到a上,再将a和b相加并赋值给c。由于我们重载了加法运算符和复合赋值加法运算符,所以这两个操作都可以使用。
阅读全文