好久不见,最近很忙,今天我们来学一下C++中非常重要的一部分:运算符重载。
运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型
那么具体该如何实现呢?让我写代码带大家实现一下。
一.加号运算符重载
作用:实现两个自定义数据类型相加的运算
1.成员函数实现加法运算符重载
2.全局函数实现加法运算符重载
二.左移运算符重载
作用:可以输出自定义数据类型。
代码如下:
三.递增运算符重载
我们知道递增运算符有两种,我们先写一段代码复习一下递增运算符的基本用法。
计算⼝诀:先+1,后使⽤;
口诀:先使⽤,后+1
这里a先赋值,所以a++为0,之后在加1,得到1;
既然大家都知道了,我们开始重载递增运算符的讲解
代码如下:
四.赋值运算符重载
1. 默认构造函数(无参,函数体为空)
2. 默认析构函数(无参,函数体为空)
3. 默认拷贝构造函数,对属性进行值拷贝
4. 赋值运算符 operator=, 对属性进行值拷贝
如果类中有属性指向堆区,做赋值操作时也会出现深浅拷贝问题
五.关系运算符重载
重载关系运算符,可以让两个自定义类型对象进行对比操作,代码如下:
六.函数调用运算符重载
函数调用运算符 () 也可以重载
由于重载后使用的方式非常像函数的调用,因此称为仿函数
仿函数没有固定写法,非常灵活
完喽!