c++ - C++中未初始化成员bool变量的默认值是多少?

标签 c++

考虑:

#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/

相关文章:

c++ - 如何在我的 Opensuse 中安装 qt 演示/示例?

c++ - CString 到 const byte* 的 Unicode 项目?

c++ - 虚拟机制在虚拟析构函数的情况下如何工作

c++ - 在 C/C++ 中遍历 Fasta 文件

c++ - linux中C/C++向其他独立进程发送中断信号

c++ - 如何在 C++ 中获取当前运行的可执行文件的文件名

c++ - LibPng 背景

c++ - 在数字列表中搜索最小值和最大值

c++ - QTextBrowser:如何突出显示单击的行

c++ - 线程 C++ 的 lambda 内部函数调用