【发布时间】:2017-09-26 13:19:34
【问题描述】:
如果所有对象都至少有一个构造函数,无论是编译器定义的默认构造函数还是用户定义的默认构造函数,那么如何才能取消初始化对象。
【问题讨论】:
-
并非所有对象都有构造函数,例如
int。 -
C++ 在某些情况下,例如自动存储
int n;,有一个“默认初始化意味着不执行初始化”的有趣概念。所以它被初始化但它没有被初始化。 -
您可以将
int放在class中,除非您对其进行初始化,否则它将保持未初始化状态。 -
IMO 更容易将 all 对象类型视为具有 c'tors。只是对于某些人来说,那些 c'tors 是无操作的。因此是不确定的值。
-
@rimiro 标准中的措辞有些混乱。当您编写
int i;时,i是默认初始化的。但是int的default-initialization 的定义是“不执行初始化”。通俗的说,我们只是称它为未初始化。
标签: c++ initialization