C++基础之重载运算符的详细介绍

开发 后端
本文介绍的是C++中的重载运算符,本文依然针对初学者,希望可以对大家有帮助,一起来看。

运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。建议大家看看这篇文章,《C++基础之重载赋值运算符》,仅供参考。

C++允许为类的对象构造运算符来实现单目或者双目运算,这个特性就叫运算符重载。可以通过添加成员函数来实现运算符重载。

重载是由P.J.Plauger发现的。

一。重载运算符的时机

1。需要在定义的对象间相互赋值时,重载赋值运算符

2。需要在数字类型增加算术属性时,重载算术运算符

3。需要为定义的对象进行逻辑比较时,重载关系运算符

4。对于container,重载下标运算符[]

5。需要从I/O流中读写对象时,重载<<和>>运算符。

6。重载成员指针运算符 -> 以实现smart指针

7。在少数情况下重载new,delete运算符

8。不重载其他运算符

实际上任何用重载运算符完成的工作都可以使用成员函数来实现。

重载的运算符可以和原来的运算符不一定有必然联系,例如我重载\'+\'运算马夫,可以不做加法运算,而是把字符串连接起来。当然你要是用\'+\'运算符来做减法运算,也是可以的,不过这不是明智之举。

二。重载运算符的规则

1。重载的运算符不能违反语言的语法规则

2。如果一个运算符可以放在两个操作数之间,就可以重载它来满足类操作的需要,哪怕这种用法原本为编译器不能接受。

3。不能创造C++语言中没有的运算符

4。下列运算符不能重载

  • . 类成员运算符
  • .* 成员指针运算符
  • :: 域解析运算符
  • ?: 条件表达式运算符

5。重载时不能改变运算符的优先级

三。运算符重载

运算符重载是通过对运算符函数的重载来实现的。对于每一个运算符@,在C++中都对应一个运算符函数operator@,其中@为C++各种运算符。

运算符函数的一般原型为:

  1. ype operator@ (arglist) 

其中type为运算结果的类型,arglist为操作数列表。

希望通过以上三方面内容的介绍,能够给你带来帮助。

【编辑推荐】

  1. C++基础之typedef的四个用途
  2. C++基础之头文件和源文件的关系
  3. 给正准备学习VC++朋友的建议
  4. C++基础之析构函数的介绍
  5. C++基础之引用的详细介绍
责任编辑:于铁 来源: 互联网
相关推荐

2011-07-15 01:34:36

C++重载运算符

2020-09-30 14:04:25

C++运算符重载

2024-01-26 16:37:47

C++运算符开发

2023-09-07 23:30:47

运算符C++

2011-07-20 13:34:37

C++

2020-08-10 10:20:15

流插入运算符语言

2009-08-12 10:47:03

C#运算符重载

2009-08-11 15:51:08

C#运算符算术运算符

2009-08-12 12:46:11

C#运算符重载

2009-09-04 13:18:10

C#允许运算符重载

2009-08-12 10:56:47

C#运算符重载C#运算符重载实例

2009-08-12 10:27:12

C#运算符重载运算符重载实例

2009-08-14 10:16:57

C#运算符重载

2010-03-26 12:54:27

Python嵌入C++

2011-07-14 23:27:05

C++引用

2021-12-15 10:25:57

C++运算符重载

2009-08-12 15:02:49

C#赋值运算符简单赋值运算符

2009-08-12 11:20:51

C#运算符重载

2011-07-14 17:17:21

C++指针

2011-07-14 17:02:09

C++指针
点赞
收藏

51CTO技术栈公众号