重载运算符是函数重载的一种,
针对类对象进行操作,重载的函数中至少有一个是类对象
int operator +(ass numone, int num){...}
重载为类的成员函数,
单目运算符重载-操作数是访问本身的数据,由this指出
双目运算符重载-左操作数由this指针给出,右操作数由函数参数给出
显示调用-aa.operator(bb);
隐式调用-aa++bb;
重载为友元函数,
针对类对象进行操作,重载的函数中至少有一个是类对象
int operator +(ass numone, int num){...}
重载为类的成员函数,
单目运算符重载-操作数是访问本身的数据,由this指出
双目运算符重载-左操作数由this指针给出,右操作数由函数参数给出
显示调用-aa.operator(bb);
隐式调用-aa++bb;
重载为友元函数,
单目重载运算符时,由于要改变操作数自身的值,应采用引用参数传递
class point
{
private:
int num;
public:
point()
{
num = 0;
}
point(int n)
{
num = n;
}
point operator +(point mn);
point operator ++();
friend point operator -(point m, point n);
friend point operator --(point &m);
int get_num();
};
int point::get_num()
{
return num;
}
point point::operator +(point mn)
{
point item;
item = num + mn.num;
return item;
}
point point::operator ++()
{
++num;
return *this;
}
point operator -(point m, point n)
{
point temp;
temp.num = m.num + n.num;
return temp;
}
point operator --(point &m)
{
--m.num;
return m;
}