问题标签 [value-initialization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 对象的默认初始化、值初始化和类内初始化不正确?
你可能会觉得代码很长,我写了很多东西,但相信我,这很简单。
为了理解这一点,我在 stack-overflow 上引用了这两个答案。 后 1和后 2
代码
输出
B类
b1
是值初始化精确零初始化。
b2
是默认初始化意味着没有初始化。
b3
是大括号初始化意味着值初始化导致零初始化。
我无法创建b4()
类似q4
(不完全类似,但你知道我的意思),因为它引导函数定义而不是对象声明(最令人烦恼的解析)
我认为q1
应该初始化值,但在看到输出后它与我的想法不符。
q2
是默认初始化意味着没有初始化。
q3
是大括号初始化意味着值初始化导致零初始化。
q4
调用构造函数,但没有用户定义的构造函数,所以它应该默认初始化意味着没有初始化。
我知道q1
, q2
, q3
,q4
是指针,但为了简单起见,我将上述语言用于 ex。q3
是大括号初始化的。但我想你知道我的意思。
我对b1
,b2
的b3
看法被证明是正确的,所以我对此没有任何疑问,这可能只是巧合,如果我错了,请纠正我。
关于q1
, q2
, q3
,q4
我认为b1
我认为它也应该适用,q1
但它不会发生,所以请解释一下。
关于q2
我认为匹配的内容,所以没问题,但如果我错了,请纠正我。
现在与q3
&混淆了q4
。我认为两者都在呼吁构造函数,但我不确定。我假设两者都调用构造函数,但我们没有用户定义的构造函数,所以它应该默认初始化意味着未初始化,不是吗?那么为什么两者都被精确地初始化为零初始化。
A级
因此,如果我们进行类内初始化,无论我们在哪里声明对象,它将使用我们提供的内容进行初始化,我觉得这是正确的,但只是想确认一下,如果您想告诉我更多关于这一点的信息,请添加。