设为首页 加入收藏

TOP

8.4 运算符重载
2013-10-07 16:08:04 来源: 作者: 【 】 浏览:65
Tags:8.4 运算 重载

8.4  运算符重载

运算符重载是非常重要的功能,因为它能够使用像+、-、*这样的标准C++(www.cppentry.com)运算符,来处理自定义数据类型的对象。该功能允许编写重新定义特定运算符的函数,从而使该运算符处理类对象时执行特定的动作。例如,可以重新定义<运算符,从而使该运算符用于前面看到的CBox类对象时,如果第一个实参的体积比第二个小,就返回true。

运算符重载功能不允许使用新的运算符,也不允许改变运算符的优先级,因此运算符的重载版本在计算表达式的值时,优先级与原来的基本运算符相同。运算符的优先级表可以在本书第2章和MSDN库中找到。

虽然我们不能重载所有运算符,但限制不是特别严格。下面给出了不能重载的运算操作符。

::       作用域解析运算符
 
:       条件运算符
 
      直接成员选择操作符
 
sizeof    sizeof操作符
 
.*       对指向类成员的指针解除引用的操作符
 

任何其他运算符都是可以重载的,这给予我们相当大的灵活性。显然,确保标准运算符的重载版本与原来的正常用途一致,或者至少在操作上相当直观,是正确的想法。如果为某个类重载的+运算符执行使类对象相乘的操作,这可能就不是明智的做法。理解运算符重载机制如何工作的最好方法是完成一个示例,因此下面为CBox类实现刚才提到的小于运算符<。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.9.3 实现CBox类(2) 下一篇8.4.1 实现重载的运算符(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·python数据分析岗的 (2025-12-25 10:02:21)
·python做数据分析需 (2025-12-25 10:02:19)
·成为一个优秀的pytho (2025-12-25 10:02:16)
·Java后端面试实习自 (2025-12-25 09:24:21)
·Java LTS版本有哪些 (2025-12-25 09:24:18)