第三十九课 逗号操作符的分析
一、逗号操作符
- 逗号表达式用于将多个子表达式连接为一个表达式
- 逗号表达式的值为最后一个子表达式的值
- 逗号表达式中的前N-1个子表达式可以没有返回值
- 逗号表达式按照从左向右的顺序计算每个子表达式的值
- 逗号表达式的最后一个需要有值
二、重载逗号操作符
-
在C++ 中重载逗号操作符是合法的
-
使用全局函数对逗号操作符进行重载
-
重载函数的参数必须有一个是类类型
-
重载函数的返回值必须是引用
class& operator , (const class&a, const class& b) { return const_cast<class&>(b); }
三、重载问题
-
逗号操作符重载也会出现出现原生语义被改变的情况
C++ 通过函数调用扩展操作符的功能
进入函数前必须完成所有参数的计算
函数参数的计算次序是不定的
重载后无法严格从左向右计算表达式
-
所以在工程中不要重载逗号操作符
四、小结
- 逗号表达式从左向右顺序计算每个表达式的值
- 逗号表达式的值为最后一个表达式的值
- 操作符重载无法实现逗号操作符的原生意义
- 工程中不要重载逗号操作符