原文链接:http://blog.youkuaiyun.com/lyh__521/article/details/49622601
复合赋值运算符
形如‘*=’、‘+=’、‘/=’等这样的运算符称为复合赋值运算符,它们其实是算术运算和赋值运算的结合,即先执行算术运算,得到的值再赋值给左侧对象。
重载复合赋值运算符:
- 赋值运算符必须定义为类的成员,复合赋值运算符通常也应该定义为成员函数(但并不是必须这样)。
- 复合赋值运算符函数返回左侧对象的引用(为了与内置的复合赋值运算符保持一致)。
下面是一个例子:
//重载了 += 运算符
#include<iostream>
using namespace std;
class Goods{
public:
//构造函数
Goods(int x=0,double y=0.0){
num = x;
money = y;
}
//重载复合赋值运算符
Goods &operator+=(const Goods &gd2){
num += gd2.num;
money += gd2.money;
return *this;
}
//打印类的内容
void print(){
cout<<num<<