运算符重载与友员函数

1.友员函数使用在,你需要一个函数具有访问类的私有成员,但是不想它成为这个类的成员函数,那么可以声明这个函数为类的友员函数 。

2.运算符重载为类的成员函数时,使用时,左边必须是这个类的对象,如果左边不是类的对象 ,那么是无法调用这个成员函数的,如果想左边不是一个对象就 调用 这个函数,那么

可以声明这个函数为类的友员函数


#include <iostream>
using namespace std;

class Complex
{
    private:
        int realValue;
        int virtualValue;
    public:
        Complex(int r, int v)
        {   
            realValue = r ;
            virtualValue = v ;
        }   
        //object+object
        Complex operator + (const Complex &c1);
        //object+i,but i+object is false
        Complex operator + (const int i);
        //i+object
        friend Complex operator + (const int i,Complex &c1);
        void display(){cout<<realValue<<","<<virtualValue<<endl;}
};

Complex Complex::operator + (const Complex &c1)
{
    return Complex(realValue+c1.realValue,virtualValue+c1.virtualValue);
}

Complex Complex::operator + (const int i)
{
    return Complex(realValue+i,virtualValue);
}

Complex operator + (const int i,Complex &c1)
{
    return Complex(i+c1.realValue,c1.virtualValue);
}


int main()
{
    Complex a(1,2);
    Complex b(2,3);
    Complex c = a+b;
    Complex d = a+10;
    Complex e = 10+a;
    c.display();
    d.display();
    e.display();
    return 0;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值