重载加法运算符,实现对象的直接加法运算。例如,下面这个feetinches类:
class FeetInches
{
private:
int feet;
int inches;
//对feet和inches的值进行调整
void simplify();
public:
FeetInches(int f=0, int i=0)
{
feet = f;
inches = i;
simplify();
}
void setData(int f,int i)
{
feet = f;
inches = i;
simplify();
}
int getFeet(){return feet;}
int getInches(){return inches;}
//重载加法运算符
FeetInches operator+(const FeetInches &right)
{
FeetInches temp;
temp.feet = this->feet + right.feet;
temp.inches = this->inches + right.inches;
temp.simplify();
return temp;
}
};
其中simplify函数实现对feet和inches的调整,具体实现如下:
void FeetInches::simplify()
{
if(inches >= 12)
{
feet+=inches/12;
inches = inches%12;
}else if(inches < 0)
{
feet-=abs(inches)/12 + 1;