C++二级考试知识点:什么是重载运算符?

发布于 2018-01-30 16:34  编辑:盘子
0
计算机等级考试题库 扫码微信刷题

问:


考无忧小编解答:重载是由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++各种运算符。

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

type operator@ (arglist)

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







考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看



本文网址:http://www.k51.com.cn/info/jsjdjks/1801/3025414.html
选择分享到: