问题标签 [default-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++ - 默认初始化和值初始化之间的歧义
我发现很多文章解释了“默认初始化和值初始化”之间的区别,但实际上我并没有理解清楚。
这是一个例子:
正如我猜想的那样,上面是可以的,但在这里:
请帮助我了解两种初始化形式之间的主要区别。
c++ - 如何让一个变量依赖于类中的其他变量?
变量有什么问题international_standard_book_number
?我怎样才能让它改变,无论何时isbn_field_i
改变?
输出:
期望的输出:
编辑:这个问题的目的不是我的(为什么,而不是如何),它的答案对我的帮助不如这个主题的答案。
c - 关于c中默认初始化的问题
我正在准备面试,发现这个问题有点令人困惑。非常感谢您的建议。
什么默认没有初始化?
- 静态数组的最后一个变量,其中第一个变量在语句中显式初始化。
- 使用
calloc
函数分配的动态数组成员。- 全局变量。
- 此处提供的所有数据均默认初始化。
- 打开文件时的当前光标位置。
- 一个静态变量。
- 静态字符集中的最后一个字符。
我认为答案是#1,但不确定解释。
static - 在未命名的命名空间中默认初始化的内置类型的对象是否具有明确定义的默认值?
AFAIK 我们应该为全局对象使用一个未命名的命名空间,我们希望使它们成为翻译单元的本地对象,而不是将这些对象定义为static
全局对象。所以那里的对象是隐含的静态的。
我想知道在没有初始化程序(默认初始化)的情况下定义内置类型的对象是否int
具有与显式定义相同的定义值static
?
这是一个例子:
c++ - 安全地初始化一个 std::array of bools
给定这个数组声明和初始化:
我可以假设数组中的所有元素都将始终初始化为 false,还是明确地这样做更好?
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级
因此,如果我们进行类内初始化,无论我们在哪里声明对象,它将使用我们提供的内容进行初始化,我觉得这是正确的,但只是想确认一下,如果您想告诉我更多关于这一点的信息,请添加。