天天看點

運算符重載為成員函數,友元函數

重載運算符是函數重載的一種,

針對類對象進行操作,重載的函數中至少有一個是類對象

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;
}
           

繼續閱讀