考虑:
#include <iostream>
using namespace std;
class Bool_tester {
private:
bool flag;
public:
bool get()
{
return flag;
}
};
int main()
{
// Create an instance of Bool_tester
Bool_tester test1;
// Call the get member function
cout << test1.get() << endl;
return 0 ;
}
它的输出是 204 并且正确。 bool 型成员变量的默认值是true吗?
最佳答案
如果未显式初始化,则只有全局变量才会获得默认值零。
对于局部变量,编译器不需要清理它们分配到的内存内容。
如果任何局部变量被赋予非零垃圾值,该值在 bool 变量中计算为 true,这就是您的情况发生的情况。未初始化的原始数据类型具有任何值,好的做法是初始化局部变量。
关于c++ - C++中未初始化成员bool变量的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51806802/