gpt4 book ai didi

c++ - 构造函数是否必须在 C++ 中初始化成员变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:54 24 4
gpt4 key购买 nike

我了解到构造函数用于在 C++ 中初始化类的成员变量。在所有示例中,我都看到构造函数在调用时初始化类的所有成员变量。

如果我编写一个只初始化部分成员变量或不初始化任何成员变量的构造函数,会发生什么情况?

最佳答案

这真的取决于你有什么成员变量。如果你提供了一个构造函数并且没有在成员初始化列表中显式初始化一个变量,那么它将是 default initialized .这是针对每个变量的。

现在,默认初始化会根据您拥有的变量执行其他操作。如果你有一个内置类型,比如 intbool,那么它不会被初始化为 0 或任何其他值,就像你有:

int value; // it has an indeterminate value

这也适用于数组。如果它是另一个类,那么将调用该类的默认构造函数,就像您有:

struct Foo { /*something*/ };
Foo value; // calls default constructor, i.e. initializes object

关于c++ - 构造函数是否必须在 C++ 中初始化成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com