持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情
1️⃣前言
今天笔记的内容是:加号运算符的重载
2️⃣加号运算符重载
首先,我们定义一个类
如下所示:
在主函数里,我们定义了两个对象x和y,并都初始化为5,然后再创建一个对象z,需求是将x+y的值赋给z:
如下所示:
但是报错了!!!
报错的原因是:
也就是说,我们必须在类中,重载+运算符,才能实现两个类对象之间的相加
3️⃣成员函数对加号运算符的重载
代码如下:
解析如下:
- 先来看这条语句:
z = x + y;- 很明显,
x+y的返回值是一个myClass类- 所以类中的加号运算符重载函数的返回类型就得是
myClass- 能注意到,重载的函数名是
operator+- 这是因为,我们在重载运算符时,规定的函数名是operatorop
- 注意:op指的是要重载的运算符
- 再来看参数
- 参数是
myClass& m,也就是类的引用myClass&,也就是说我们得传递类的引用- 最后就是函数体的编写
- 在函数体中,根据加法的逻辑对
+号运算符进行重载
这就是成员函数对加号运算符的重载!
4️⃣全局函数对加号运算符的重载
对于重载运算符,我们既可以在类中编写成员函数进行重载运算符,也能在全局环境下编写函数重载运算符。
代码如下:
上述代码中,函数是全局函数,其也能实现对myClass类的加号运算符重载
5️⃣写在最后
好了,今天的笔记就到这里。欢迎大家到评论区一起讨论!