运算符重载函数作为类成员函数和友元函数

对运算符重载的函数的处理方式:

1、把运算符重载的函数作为类成员函数

2、运算符重载的函数不是类成员函数(可以是一个普通函数),在类中把它声明为友元函数。

3、友元运算符重载函数。

例:将运算符"+"重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。

#include<iostream>
using namespace std;
class Complex
{
    public:
        Complex(){real=0;imag=0;}
        Complex(double r,double i){real=r;imag=i;}
        friend Complex operator+(Complex &c1,Complex &c2);//重载函数作为友元函数
        void display()
    private:
        double real;
        double imag;
};
Complex operator+(Complex &c1,Complex &c2)//定义运算符"+"重载函数
{
    return Complex(c1.real+c2.real;c1.imag+c2.imag);
}
void Complex::display()
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
    Complex c1(3,4),c2(5,-10),c3;
    c3=c1+c2;
    cout<<"c1=";c1.display();
    cout<<"c2=";c2.display();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值