<C++学习笔记>:加号运算符的重载

222 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情

1️⃣前言

今天笔记的内容是:加号运算符的重载


2️⃣加号运算符重载

首先,我们定义一个类

如下所示:

image.png

在主函数里,我们定义了两个对象xy,并都初始化为5,然后再创建一个对象z,需求是将x+y的值赋给z

如下所示:

image.png

但是报错了!!!

报错的原因是:

image.png

也就是说,我们必须在类中,重载+运算符,才能实现两个类对象之间的相加


3️⃣成员函数对加号运算符的重载

代码如下:

image.png

解析如下:

  • 先来看这条语句:z = x + y;
  • 很明显,x+y 的返回值是一个myClass
  • 所以类中的加号运算符重载函数的返回类型就得是myClass
  • 能注意到,重载的函数名是operator+
  • 这是因为,我们在重载运算符时,规定的函数名是operatorop
  • 注意:op指的是要重载的运算符
  • 再来看参数
  • 参数是myClass& m,也就是类的引用myClass&,也就是说我们得传递类的引用
  • 最后就是函数体的编写
  • 在函数体中,根据加法的逻辑对+号运算符进行重载

这就是成员函数对加号运算符的重载!


4️⃣全局函数对加号运算符的重载

对于重载运算符,我们既可以在类中编写成员函数进行重载运算符,也能在全局环境下编写函数重载运算符。

代码如下:

image.png

上述代码中,函数是全局函数,其也能实现对myClass类的加号运算符重载


5️⃣写在最后

好了,今天的笔记就到这里。欢迎大家到评论区一起讨论!