C++运算符重载知识点整理

在C++中,运算符和函数是等价的,它和函数一样可以通过重载的方式来灵活地解决各种实际问题。

 

运算符重载的格式

运算符重载有两种形式,一是重载为成员函数形式,二是重载为友元(或普通的类外)函数形式。

以Complex复数类的 “+” 运算符为例,重载为成员函数的形式为:

class Complex{
	
	int real,image;
	
	public:
		Complex(int r=0,int i=0):real(r),image(i){};
		
		Complex operator+(const Complex& c);//成员函数形式重载"+" 
	
};

Complex Complex::operator+(const Complex& c){ //具体实现 
	return Complex(real+c.real,image+c.image);
}

重载为友元函数的形式为:

class Complex{
	
	
	int real,image;
	
	public:
		Complex(int r=0,int i=0):real(r),image(i){};
		
		friend Complex operator+(const Complex& c,const Complex& c2);//友元函数形式重载"+" 
	
};

Complex operator+(const Complex& c,const Complex& c2){ //具体实现 
	return Complex(c.real+c2.real,c.image+c2.image);
}

运算符重载比函数重载多了一个operator关键字,重载为成员函数时有一个参数为类对象本身,而重载为外部函数(友元或者普通函数)时需要将所有参数写出来。

返回类型 operator 运算符(参数列表){
    
}

或者重载为成员函数形式:

返回类型 所在类的类名::operator 运算符(参数列表){
    
}

其中参数列表根据重载的运算符定,例如二元运算符重载为友元函数时需要两个参数(两个操作数

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值