读书人

关于C++中 或操作的执行顺序,该如何处

发布时间: 2012-09-11 10:49:03 作者: rapoo

关于C++中 或操作的执行顺序
例如:
p是一个类指针,fun是它的函数
然后
if(!p || p->fun())
{
。。。
}

这样做似乎不安全,我以前就碰到过这样的问题,p->fun先执行,导致因p为空而崩溃,但什么情况会出现||先执行右边的条件呢

[解决办法]
应该没问题,别的地方引起崩溃的吧。其他代码呢
[解决办法]

探讨
例如:
p是一个类指针,fun是它的函数
然后
if(!p || p->fun())
{
。。。
}

这样做似乎不安全,我以前就碰到过这样的问题,p->fun先执行,导致因p为空而崩溃,但什么情况会出现||先执行右边的条件呢

[解决办法]
p->fun()先执行? 这绝对不是你||的原因,应该是程序别的地方出错导致||p->fun();先执行
[解决办法]
“||”的意义就是“短路或”,明确规定要从左至右执行的,这也是和“|”操作符明显区别的地方。
肯定是你的其他代码导致崩溃了,楼主在检查一下其他代码!

读书人网 >C++

热点推荐