以下内容源于慕课网的学习整理,如有侵权,请告知删除。
一、运算符重载的概念
- 给原有的运算符赋予新的功能。
- 比如下面的截图,本来加号+并不具备坐标的相加的功能,但是通过运算符重载可以实现该功能。
二、运算符重载的本质
- 本质是函数的重载;
- 重载方式:友元函数重载、成员函数重载。即定义成一个类的友元函数,或者成员函数。
三、运算符重载的关键字operator
1、一元运算符重载
负号的重载
(1)成员函数重载
- 虽然它不含有参数,但是它作为普通的成员函数,还是有一个隐性的this指针作为参数的。
- 函数返回应该是它本身(只是成员取反了而已),因此应该是返回值是“类&”的形式。
- 注意到它也是一个函数,因此有两种方式表示。
(2)友元函数重载
- 需要传入参数
++符号的重载
(1)前置++符号重载
- 下面是成员函数重载的形式
(2)后置++符号重载
- 返回值不再是引用,而是一个对象。为什么呢?
- 传入int,标明++符号是后置的而已,没有其他用途。
2、二元运算符重载
加号运算符的重载
(1)成员函数重载形式
(2)友元函数重载形式
输出运算符的重载
- 采用友元函数重载的方式,不能采用成员函数重载的方式。
索引运算符的重载 [ ]
- 索引运算符不能使用友元函数重载的方式,只能用成员函数重载的方式