重载运算符

1、对于自定义类型,编译器不知道运算规则,而重载运算符会将两个对象相加转换为函数调用。

2、运算符重载转换的函数调用,函数名字是固定的规则。

  (1) 如果重载+号运算符,函数名字就是:operator+

  (2) 如果重载-号运算符,函数名字就是:operator-

  (3) 如果重载<号运算符,函数名字就是:operator<

  (4) 如果重载!号运算符,函数名字就是:operator!

3、运算符重载就是在类的内部增加某个运算符函数。

4、对于+号运算符可以返回任何类型的数据(基本数据类型,自定义数据类型)。

5、返回值可以有两个选择:值、引用。

6、返回值要考虑运算符本身的含义是什么(尽量不要违背运算符本身的含义)。

代码实现:

声明一个Box类和Desk类:

实现Box+Box

实现Box+Desk

实现Box+int(自己制定规则)

实现Box+=Box

实现Box+=int类型

实现Box==Box(返回值类型为bool)

实现Box==int类型

实现++Box

实现Box++

运算符重载也可以重载类型转换运算符(规则由自己制定)

实现Box转换为int类型、bool类型、以及Box转换为Desk类型

最新文章

  1. Ubuntu ./configure 半途终止 导致没有生成makefile文件 解决方法
  2. MFC中ClistCtrl的=NM_CUSTOMDRAW消息
  3. 异步dcfifo的读写
  4. AIO、NIO、BIO
  5. Caused by: 元素类型为 &quot;package&quot; 的内容必须匹配 &quot;(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception-mappings?,action*)&quot;
  6. swiper去除滑动设置
  7. android ScrollView--Linearlayout可以上下拖动
  8. CCNA -OSI七层模型
  9. SpringCloud学习之Hystrix
  10. 聊聊Unity2018的LWRP和混合光照
  11. 2019微信公开课 同行With Us 听课笔记及演讲全文
  12. loglog 函数的使用
  13. Bitmap RGB24 4字节对齐
  14. 第二篇*1、Python基本数据类型
  15. HDU 3605 Escape (网络流,最大流,位运算压缩)
  16. 安装Windows10系统注意事项
  17. L256 阅读理解
  18. 【转帖】 redis 命令 From https://www.cnblogs.com/zhouweidong/p/7550717.html
  19. (转) Lua: 给 Redis 用户的入门指导
  20. [Swift实际操作]七、常见概念-(7)日历Calendar和日期组件DateComponents

热门文章

  1. 第3章(3) do{}while(0)语句
  2. windows自带的netsh的使用
  3. msf各种弱口令爆破
  4. java控制执行流程
  5. Electron开发跨平台桌面程序入门教程
  6. Flink 从 0 到 1 学习 —— 如何自定义 Data Source ?
  7. Orleans 知多少 | 3. Hello Orleans
  8. FileZilla Server超详细配置
  9. MyBatis 示例-类型处理器
  10. 百万年薪python之路 -- 前端CSS样式