考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C++语言程序设计 > C++辅导 > 文章内容
  

计算机等级考试二级C++语言程序设计辅导笔记:重载运算符

中华IT学院   【 】  [ 2017年5月22日 ]

  重载是由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为操作数列表。

分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved