C++中的重载运算符
来源:互联网 发布:淘宝lol半价点券关键词 编辑:程序博客网 时间:2024/06/06 01:26
一.重载运算符
1.重载形式 : 返回类型+operator+运算符号(参数说明)
如: class A{};
int operator +(A&,A&); //两个A类对象参加运算,返回int型
operator+是一个双目运算符,operator++是一个单目运算符,
operator+( 参数一般用引用 )
2.返回值还是返回地址的问题
例如:
RMB operator +(RMB &s1,RMB &s2){ int jf=s1.jf+s2.jf; int yuan=s1.yuan+s2.yuan; RMB result(s1,s2); return result;}
operator+由值返回。假如result对象用引用返回,result对象由+运算符函数的栈空间分配内存,受限于块作用域,引用返回使得调用者使用这块随时分配的空间。
RMB &operator++(RMB &s)s.jf++;if(s.jf>=100){ s.jf-=100; yuan++;}return s;
operator++( )则与operator+( )不一样,operator++( )修改了它的参数,而且其返回值要求是左值,这个条件使得它不能以值返回。
二.前增量与后增量的区别
使用前增量时,对对象进行增量修改,然后再返回该对象。所以前增量运算符操作时,参数与返回的是同一个对象,返回的是左值。
使用后增量时,必须在增量之前返回原有的对象值。为此,需要创建一个临时对象,存放原有的对象,以便对操作数进行增量修改时,保存最初的值。
0 0
- 【C++】String类中的运算符重载
- C++-运算符重载
- [C++]重载运算符
- C#:运算符重载
- c++-++运算符重载
- C++:重载运算符
- 运算符重载(C++)
- [c++]运算符重载
- 【C++】运算符重载
- C++--------------------------------------------运算符重载
- C#:运算符重载
- C++:运算符重载
- C++:运算符重载
- C#:运算符重载
- [C++]运算符重载
- 【c++】运算符重载
- C++:运算符重载
- C#:运算符重载
- 新人离职原因
- VM虚拟机扩展磁盘容量并挂区该分区
- Android 最火的快速开发框架XUtils
- Elasticsearch替换中文分词
- 判断一棵树是否为另一棵树的子树
- C++中的重载运算符
- maven打包时忽略测试代码
- java设计模式
- java中栈和队列的实现和API用法
- jquery-easyui-tab引入页面的问题
- 有关JVM处理Java数组方法的思考
- 一小时了解数据挖掘②:分类算法的应用和成熟案例解析
- Deep Learning(深度学习)之(二)Deep Learning的基本思想
- 2016.6.16笔记(1)-多线程(1)