隐式默认构造函数是否初始化内置类型?
虽然编译器生成的默认构造函数负责初始化类的成员,但此规则不适用于内置类型。隐式默认构造函数使内置类型成员未初始化。
但是,还有其他初始化类实例的机制。
值初始化
语法C() 可能看起来调用默认构造函数,但实际上,它执行值初始化,其中:
示例:
class C { public: int x; }; C c; // Compiler-generated default constructor used, x retains garbage
显式初始化
显式 () 初始化程序触发内置类型和用户声明的值初始化
C c = C(); // Value initialization used, x is zero-initialized C *pc = new C(); // Value initialization used, pc->x is zero-initialized
聚合初始化
聚合初始化也会初始化类实例,而不涉及构造函数。
C c = {}; // x is zero-initialized C d{}; // C++11 aggregate initialization, x is zero-initialized
以上是C 是否在默认构造函数中隐式初始化内置类型?的详细内容。更多信息请关注PHP中文网其他相关文章!