栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

端午篇:C++学习笔记(三十七)之总结<运算符重载>

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

端午篇:C++学习笔记(三十七)之总结<运算符重载>

大家好,我是翼同学!

目录
  • 1️⃣前言
  • 2️⃣如何理解运算符重载?
  • 3️⃣如何重载运算符?
    • 关键字
    • 重载的格式
    • 需注意的点
  • 4️⃣无法重载的运算符
  • 5️⃣写在最后


1️⃣前言

又到了端午节,先祝大家端午安康!!!

今天笔记的内容是:

  • 总结运算符的重载

运算符的重载,使得程序更加容易理解,便于我们对类的对象进行操作。


2️⃣如何理解运算符重载?

运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

  • 运算符重载是一种形式上的C++多态
  • 事实上很多C++运算符都实现了重载,比如运算符*
  • 当*运算符用于地址,将得到存储在该地址中的值
  • 当*运算符用于两个数字时,将得到它们的乘积
  • 同样的,当我们定义一个类后,创建两个类的对象
  • 接着将两个对象相乘,显然编译器并不知道该如何操作
  • 只有将*号运算符重载后才能实现两个对象的相乘,这就是运算符重载

运算符重载是C++的特性之一,它使得我们能够将运算符的定义扩展到自定义的数据类型中。

运算符重载使得C++的代码更加直观且易读,简洁易懂。


3️⃣如何重载运算符? 关键字
  • operator

重载的格式

运算符重载的格式为:

举个例子:

我们定义一个myClass类,然后对加号运算符进行重载:


需注意的点
  1. 优先性与结合性不能变!

因为运算符是C++内部定义好了的,具有一定语法规则,如运算时的优先性以及结合性等。

在重载运算符时,需注意其运算顺序和优先性等不能改变!

  1. 操作数的个数不能变!

运算符根据操作数的不同,可分为单目运算符和双目运算符等。

在重载运算符时,必须注意,不能改变操作数的个数。

比如乘法运算符*的操作数是两个,即A*B,这是我们在重载时就不能修改*的操作数个数。

不然会导致程序报错,编译错误!

  1. 不能凭空创造运算符!

不能创建新的运算符,不然会导致编译出错。

例如,下面的操作是错误的:


4️⃣无法重载的运算符

几乎所有的C++运算符都可以被重载。但是,C++规定有些运算符无法进行重载!

如下所示:

  • 点操作符(.)
  • 域操作符(::)
  • 成员间访问操作符(.,*)
  • 成员指针操作符(->,*)
  • 条件操作符(? ::)

最后,附上我之前写过的文章(小例子):

  • <加号运算符重载>
  • <左移运算符重载>
  • <自增运算符重载>
  • <赋值运算符重载>

5️⃣写在最后

好了,本篇笔记就到写这。最后祝大家幸福吉祥,端午安康!


注:本章内容参考书

《C++程序设计教程》---- 钱能 著

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号