我在我拥有的一些 C++ 代码上运行 valgrind,它给出了一个错误,说我对未初始化的值有条件跳转。这是一段有问题的代码,它是一种方法(不是静态的)。
if (debug_ & 0x1) {
printf("Debugging information...\n");
}
但是变量debug_
是在构造函数中设置的,如下所示:
MyClass::MyClass(
AnotherClass* interface,
int debug) :
debug_(debug)
{
//Some other irrelevant stuff
}
并且标头定义了该参数的默认参数:
class MyClass : boost::noncopyable {
public:
explicit MyClass(AnotherClass* interface, int debug=0xFF);
//Other stuff
private:
int debug_;
}
但是,即使我实例化这个类,我也会将一个值传递给第二个参数。我错过了什么?