运算符重载为成员函数,友元函数

重载运算符是函数重载的一种,
针对类对象进行操作,重载的函数中至少有一个是类对象
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;
}

你可能感兴趣的:(4_20)