重載運算符是函數重載的一種,
針對類對象進行操作,重載的函數中至少有一個是類對象
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;
}