39-逗号操作符的分析
来源:互联网 发布:男博导女博士知乎 编辑:程序博客网 时间:2024/06/05 21:24
1、逗号操作符
#include <iostream>#include <string>using namespace std;void func(int i){ cout << "func() : i = " << i << endl;}int main(){ int a[3][3] = { (0, 1, 2), (3, 4, 5), (6, 7, 8) }; int i = 0; int j = 0; while( i < 5 ) func(i), i++; for(i=0; i<3; i++) { for(j=0; j<3; j++) { cout << a[i][j] << endl; } } (i, j) = 6; cout << "i = " << i << endl; cout << "j = " << j << endl; return 0;}func() : i = 0func() : i = 1func() : i = 2func() : i = 3func() : i = 4258000000i = 3j = 6
2、重载逗号操作符
#include <iostream>#include <string>using namespace std;class Test{ int mValue;public: Test(int i) { mValue = i; } int value() { return mValue; }};/*Test& operator , (const Test& a, const Test& b){ return const_cast<Test&>(b);//去除const的属性,返回值非const}*/Test func(Test& i){ cout << "func() : i = " << i.value() << endl; return i;}int main(){ Test t0(0); Test t1(1); //使用自定义逗号操作符重载 Test tt = (func(t0), func(t1)); ==>Test tt = (operator,(func(t0), func(t1))); //实际是调用函数实现,参数调用顺序跟参数调用约定有关 Test tt = (func(t0), func(t1)); // Test tt = func(t1); cout << tt.value() << endl; // 1 return 0;}1、重载逗号操作符结果:不能从左到右依次调用,实质上是调用operator,(func(t0),func(t1))函数func() : i = 1func() : i = 012、不重载操作符结果(使用系统提供的逗号):能够实现原声语意,从左到右依次调用(func(t0),func(t1))func() : i = 0func() : i = 11
3、
4、小结
阅读全文
0 0
- 39-逗号操作符的分析
- 逗号操作符的意义
- 第三十九课:逗号操作符的分析----------狄泰软件学院
- 关于c 的逗号操作符
- 关于c 的逗号操作符
- 逗号操作的详谈
- 逗号操作符
- 逗号操作符
- 逗号操作符陷阱
- 逗号操作符
- 逗号操作符
- 逗号操作符
- JavaScript-逗号操作符
- Java 逗号操作符
- 【操作符】 - 逗号操作符
- 4.3.3逗号操作符
- c++ 逗号操作符重载
- java 逗号操作符 逗号分隔符 详解
- 排序算法之简单插入排序
- 嵌入式 ARM9 S3C2451裸机 GPIO封装原理和代码实现(详解)
- application的 使用
- bzoj 3439: Kpm的MC密码
- 最小二乘法
- 39-逗号操作符的分析
- Java知识结构图
- 树和二叉树的应用
- ffmpeg+SDL2 实现简单播放器
- 怎样才能赚到钱系列(二)
- 设计模式之工厂模式
- HDU
- 简单明了理解java中的“==”和“equals”的区别
- LeetCode 560 Subarray Sum Equals K