条款六:区别++和--操作符前置和后置的区别
来源:互联网 发布:centos 6.5 开启snmp 编辑:程序博客网 时间:2024/04/28 16:42
条款六:区别++和–操作符前置和后置的区别
首先明确在操作符重载中前置++,–和后置++,–的语法如下:
class fun{ int _num;public: fun(int num) :_num(num){} fun& operator++() //前置 { _num++; return *this; } const fun operator++(int) //后置 { fun fun_rst(_num); _num++; return fun_rst; } fun& operator--() //前置 { _num--; return *this; } const fun operator--(int) //后置 { fun fun_rst(_num); _num--; return fun_rst; } //友元函数--类似 friend fun& operator++(fun f); friend const fun operator++(fun f,int); void run() { std::cout << _num << std::endl; }};//这里重定义有语法错误,只是演示一下fun& operator++(fun f){ f._num++; return f;}const fun operator++(fun f, int){ fun tmp(f._num); f._num++; return tmp;}
前置式返回一个const是为了防止出现f++++的情况,这种情况会产生误解。然而,应用时尽量使用前置++而不是用后置++就可以避免类似困扰,或者将后置++的实现依赖于前置++就不会导致两者行为不一致的情况发生。
0 0
- 条款六:区别++和--操作符前置和后置的区别
- 条款6:区别increment/decrement操作符的前置和后置形式
- 重载操作符++,区别前置和后置
- 关于前置操作符和后置操作符的区别
- 读书笔记: More Effective ++ 操作符 条款6,区别increment/decrement操作符的前置(prefix)和后置(postfix)的形式
- 关于++操作符的前置和后置的区别
- 操作符重载前置和后置的区别与实现
- 前置++和后置++的区别
- ++前置和后置的区别
- 前置++和后置++的区别
- 前置++和后置++的区别
- 前置++和后置++的区别
- 浅谈前置++和后置++的区别
- C++中前置++和后置++的区别
- (转)前置++和后置++的区别
- 前置递增和后置递增的区别
- [C++] 前置++和后置++的区别
- 前置运算符和后置运算符的区别
- Adaptive Layout
- oracle正则表达式的使用
- ApacheBench 入门知识
- 数值的扩展
- PCA(Principal Component Analysis)数学分析
- 条款六:区别++和--操作符前置和后置的区别
- 有一个文件ip.txt,每行一条ip记录,共若干行,下面哪个命令可以实现“统计出现次数最多的前3个ip及其次数”?
- SpringMVC原理解析
- fis3全局属性
- Linux下将物理地址映射到用户空间
- Java 两种线程
- linux 下 使用 ssh 连接git库
- UCenter 1.6.0 安装过程
- mysql的事务隔离机制