gpt4 book ai didi

c++ - 继承的 POD 类型的值初始化

转载 作者:搜寻专家 更新时间:2023-10-31 01:13:28 25 4
gpt4 key购买 nike

假设如下:

struct POD1 { int a; };
struct POD2 : POD1 { int b; };

int main() {
POD2 p2 = POD2();
return 0;
}

定义p2后,p2.ap2.b是否都为0?基本上我不确定值初始化规则是否也适用于 POD 类型的基类。

最佳答案

<罢工> POD2 p2();

这并没有达到您的期望,而是通过名称 p2 声明了一个函数不带参数并返回 POD2 .

现在,稍微不同的情况是:

POD2 p2 = POD2();

表达式的右边POD2()代表创建一个临时的值初始化 [5.2.3/2]。没有用户定义构造函数的用户定义类型的值初始化零初始化 [8.5/7],零初始化类型将零初始化每个成员和基数 [8.5/5] 保证两个成员都是 0。

关于c++ - 继承的 POD 类型的值初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12483323/

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