2011年计算机等级考试二级C++辅导笔记:重载运算符

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

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

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答