c++ - 在类体内初始化数据成员

标签 c++

什么时候应该使用构造函数直接在类/结构体内部初始化数据成员?

struct A{
    int x;
    A() : x{3} {}
};

struct B{
    int x{3};
};

以上两种方法效果相同。

最佳答案

如果值取决于构造函数参数,则必须使用成员初始化列表。如果单独的构造函数应使用不同的值初始化成员,则也必须使用它。还必须在C++ 11之前使用它,因为这是引入默认成员初始化程序的语言版本。

否则,选择权取决于程序员。缺省成员初始化程序对于避免使用相同的常量值进行初始化的构造函数以及具有更简洁,更简单的语法的构造器而言是有用的。

关于c++ - 在类体内初始化数据成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61477873/

相关文章:

php - PHP 7.4.8 5.6x在类似测试(g++ 4.8.5)中比相同的c++程序快

c++ - 如何使用最新的openssl更新?

c++ - 为什么 STD vector 在分配时不调用默认构造函数?

c++ - Qt - 显示选择顶部的结果

c++ - 辛是如何工作的?

java - 如何使用 JNI 在 C++ 中创建 Java 对象?

c++ - Qt 5 : emit signal from non-Qt thread

c++ - Clang 在折叠表达式中找不到模板二元运算符

c++ - 创建了我自己的 vector 类。能够重载流运算符,但无法按值打印c++

c++ - 从 char* 中删除回车 (C++)