前面我们曾经提过函数的重载
对于重载一词想必大家不是非常陌生
既然函数都可以重载,那么运算符当然也是可以重载啦!!!
比如我们日常习惯于的“+”运算符,还有“<<”位移运算符等,举个例子:
两整数(int)相加得出相加所得的整数
两浮点数(float)相加得出相加所得的浮点数
而一整数一浮点数相加得到的还是浮点数
以上的例子都是相加,但相加前后的类型不一样,系统怎么分辨出应该输出什么类型的结果呢?
所以就需要重载运算符,这些系统都给我们重载好了,当然我们也能重载为其他形式
一、对运算符重载的方法
重载运算符我们需要先定义一个重载运算符的函数
重载运算符的函数一般格式如下:
函数类型 operator 运算符名称 (形参表)
{对运算符的重载处理}
对运算符重载的函数有两种处理方式,可以作为类成员函数或友元函数
1.运算重载函数作为类成员函数:
让我们来直接看代码
#include <iostream>
using namespace std;
class Complex
{
private:
double real;
double imag;
public:
Complex(double , double);
Complex operator + (Complex &s); //声明重载运算符“+”的函数
};
Complex::Complex(double a, double b)
{
real = a;
imag =