运算符就是一种特殊的函数
运算符重载可以是普通函数
const Money operator + (const Money& a1,const Money& a2);
可以是成员函数
const Money operator + (const Money& a2) const;
当二元运算符作为成员函数进行重载时,只有一个参数。调用对象相当于以前函数的第一个参数,即第一个参数不用写
假设Money类里有数据成员a和b
const Money Money::operator + (const Money& a2) const
{
int k1 = a + b;
int k2 = a2.a + a2.b;
}
如果是友元函数的话
friend const Money operator + (const Money& a1,const Money& a2);
定义时,可以直接访问类的成员变量
const Money operator + (const Money& a1,const Money& a2)
{
int k1 = a1.a + a1.b;
int k2 = a2.a + a2.b;
}