我了解到,使用==
比较一个双精度不是明智的做法。然而,我想知道如果检查双重初始化可能是危险的或不。例如,知道变量doubleVar在初始化后不能为零,这样做是否安全?如果您之前将其初始化为零,那么将双精度比较为零是否正确?
Foo::Foo(){
doubleVar = 0.0; // of type double
}
void Foo::Bar(){
if(doubleVar == 0){ // has been initialized?
//...
}else{
//...
}
}
是:a)它不是初始化为0,它的分配0给它,和b)将它与'int' 0进行比较,而不是像它被分配的'double'0.0一样。 – chris
是的。对于这种情况它是安全的。 – haccks
我很困惑。为什么'doubleVar'如果被初始化就不能为零?你不能将它初始化为零吗?谁告诉过你用double比较==不是明智的做法?他们给的原因是什么? – crush