经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C++ » 查看文章
重载操作符 'operator'
来源:cnblogs  作者:egoist的翻绳游戏  时间:2019/1/21 9:44:58  对本文有异议

operator 是 C++ 的(运算符的)重载操作符。用作扩展运算符的功能。

它和运算符一起使用,表示一个运算符函数,理解时应将  【operator+运算符】 整体上视为一个函数名。

要注意的是:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。

 

使用时:

【返回类型】 【operator+运算符】 (const ElemType&a)const  {...}

 

为什么需要重载操作符?

系统的所有操作符,一般情况下,只支持基本数据类型和标准库中提供的class。

而针对用户自己定义的类型,如果需要其支持基本操作,如’+’,‘-’,‘*’,‘/’,‘==’等等,则需要用户自己来定义实现(重载)这个操作符在此新类型的具体实现。

 

例:

创建一个point类并重载‘+’,‘-’运算符;

  1. struct point
  2. {
  3. double x;
  4. double y;
  5. point() {};
  6. //初始化
  7. point(double a,double b)
  8. {
  9. x = a;
  10. y = b;
  11. };
  12. //重载+运算符
  13. point operator + (const point& a) const
  14. {
  15. return point (x+ a.x, y+ a.y);
  16. }
  17. //重载-运算符
  18. point operator - (const point& a)const
  19. {
  20. return point(x-a.x, y-a.y);
  21. }
  22. };

 

检验;

  1. int main()
  2. {
  3. point w(2, 6), v(5, 3);
  4. printf("w与v的坐标分别为:\n");
  5. printf("w = (%.2f, %.2f)\nv = (%.2f, %.2f)\n", w.x, w.y, v.x, v.y);
  6. point z = w+ v;
  7. printf("w+v 的值z = (%.2f, %.2f)\n", z.x, z.y);
  8. z = w- v;
  9. printf("w-v 的值z = (%.2f, %.2f)\n", z.x, z.y);
  10. return 0;
  11. }

 

检验结果;

 

end;

原文链接:http://www.cnblogs.com/Amaris-diana/p/10289937.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号