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