标签:http https html ima blank 运行 重载操作符 并且 参考
大家,都知道"&&","||"拥有"短路"功能
可以参考下面代码:
运行打印:
并没有调用func(100)函数,同样"||"逻辑操作符也具有拥有"短路"功能
||"就不会具备"短路"功能
参考以下示例:
打印:
从结果看出,调用了func(t0)和func(t1),并且调用顺序是从右往左的.
这是因为执行func(t0)&&func(t1)时:
编译器实际是执行的operator && (func(t0), func(t1))函数,所以需要进入func()初始化两个参数
然后通过下面代码, 发现参数初始化顺序是从右往左的:
运行打印:
首先回顾下编译器自带的","逗号操作符
比如:
比如:
编译器实际是执行的operator , (t1+1, t2+2)重载操作符函数.
由于初始化参数的顺序是从右往左初始化的,所以执行顺序变反了,先执行t2+2.
总结:
其实使用编译器自带的","逗号操作符,用在对象上也能成功,因为","主要就是用来隔离代码运行,并返回最后一个参数的值.不会参与对象的运算.
所以在以后的开发中,不要重载","逗号操作符
文章来源:https://www.cnblogs.com/lifexy/p/8660910.html
20.C++- &&,||逻辑重载操作符的缺陷、,逗号重载操作符的分析
标签:http https html ima blank 运行 重载操作符 并且 参考
原文地址:https://www.cnblogs.com/xiongjim/p/9673939.html