gpt4 book ai didi

C++ 默认初始化类型

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

<分区>

为什么这两种情况( A 和 C 的初始化)在 C++ 14 中产生不同的默认初始化结果?根据 cppreference.com 中的默认初始化规则,我无法理解结果

struct A { int m; };
struct C { C() : m(){}; int m; };

int main() {
A *a, *d;
A b;
A c{};
a=new A();
d=new A;
cout<<a->m<<endl;
cout<<d->m<<endl;
cout<<b.m<<endl;
cout<<c.m<<endl;
cout<<"--------------------"<<endl;
C *a1, *d1;
C b1;
C c1{};
a1=new C();
d1=new C;
cout<<a1->m<<endl;
cout<<d1->m<<endl;
cout<<b1.m<<endl;
cout<<c1.m<<endl;
}

输出:

(Scenario 1)
0
-1771317376
-1771317376
0
--------------------
(Scenario 2)
0
0
0
0

试图解释这一点的帖子(但我还不清楚为什么结果不同以及导致 m 在每种情况下被初始化的原因):Default, value and zero initialization mess

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