首页 > 后端开发 > C++ > C 的默认构造函数是否初始化内置类型成员?

C 的默认构造函数是否初始化内置类型成员?

Mary-Kate Olsen
发布: 2024-12-14 03:34:09
原创
727 人浏览过

Does C  's Default Constructor Initialize Built-in Type Members?

内置类型的默认构造函数行为

问题:

默认构造函数,由编译器自动生成,初始化 C 中的内置类型?

答案:

不,默认构造函数(由编译器为没有用户定义构造函数的类创建)不会初始化内置类型的成员。

但是,需要注意的是,还有其他不涉及默认值的初始化类实例的机制构造函数:

  • 值初始化: 语法 C()(当没有用户声明的构造函数可用时)执行值初始化,即对内置类型进行零初始化。
  • 聚合初始化:语法 C {} 或 C{};初始化类的所有成员,而不调用任何构造函数。

示例:

考虑以下类:

class C {
public:
  int x;
};
登录后复制

编译器-为C提供的默认构造函数不会初始化C::x.

C c; // Compiler-provided default constructor is used
// c.x contains garbage
登录后复制

相反,使用值初始化或聚合初始化将对 C::x:

C c = C(); // Uses value-initialization instead of default constructor
            // c.x == 0

C d{}; // Aggregate initialization
       // d.x == 0
登录后复制
进行零初始化

以上是C 的默认构造函数是否初始化内置类型成员?的详细内容。更多信息请关注PHP中文网其他相关文章!

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