首页 >后端开发 >C++ >初始化列表与构造函数主体:您应该使用哪种 C 构造函数语法?

初始化列表与构造函数主体:您应该使用哪种 C 构造函数语法?

Linda Hamilton
Linda Hamilton原创
2024-12-03 14:23:17836浏览

Initializer List vs. Constructor Body: Which C   Constructor Syntax Should You Use?

构造函数中的初始化语法:初始化列表与构造函数主体

在 C 中,您有两种选择来初始化类成员变量:构造函数:

  • 初始化列表:

    public: Thing(int _foo, int _bar): member1(_foo), member2(_bar) {}
  • 构造函数正文:

    public: Thing(int _foo, int _bar) {
      member1 = _foo;
      member2 = _bar;
    }

比较

虽然两种语法看起来很相似,但对于非 POD(简单的Old Data) 成员类型。

在初始化列表语法中,成员变量在构造函数体执行。这意味着具有非默认构造函数的非 POD 成员保证被正确初始化。

在构造函数体语法中,成员变量在构造函数体之后初始化。如果非 POD 成员没有默认构造函数,这可能会导致双重初始化和编译错误。

默认参数处理

默认参数在两种语法。您可以在初始化列表和构造函数主体中使用默认参数。

结论

对于非 POD 成员类型,建议使用初始化列表语法因为它可以确保正确的初始化并防止潜在的错误。

以上是初始化列表与构造函数主体:您应该使用哪种 C 构造函数语法?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn