首页 > 后端开发 > C++ > C 是否在默认构造函数中隐式初始化内置类型?

C 是否在默认构造函数中隐式初始化内置类型?

Linda Hamilton
发布: 2024-12-06 09:55:14
原创
551 人浏览过

Does C   Implicitly Initialize Built-in Types in Default Constructors?

隐式默认构造函数是否初始化内置类型?

虽然编译器生成的默认构造函数负责初始化类的成员,但此规则不适用于内置类型。隐式默认构造函数使内置类型成员未初始化。

但是,还有其他初始化类实例的机制。

值初始化

语法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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板