C++11,默认成员构造是件好事吗?

标签 c++ c++11 coding-style

<分区>

从 C++11 开始,我们可以默认在一个类中构造我们的变量,如下所示:

class Foo{
private:
    int bar = 0;
};

我很少看到有人使用这个功能

这是一个好的做法吗?

最佳答案

这是一个风格问题,但有一些注意事项希望是通用的:

如果你的类的所有构造函数都必须以相同的方式初始化一个成员,因为初始值在某种程度上是类的不变量的一部分,那么它既更具可读性和自记录性,也更易于使用内联初始化程序,如果您需要更改初始值,重复数据删除会消除错误源。

否则,如果不同的构造函数提供不同的初始值,那么您不应该使用内联初始化程序,即使这在技术上是允许的。

关于C++11,默认成员构造是件好事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22117951/

相关文章:

c++ - 使用派生类中的成员在父类中初始化 std::function

python - 当你不需要 python 中的索引时,你如何创建一个 For 循环?

ruby - 在 Ruby 中,String() 和 #to_s 有什么区别

java - 像这样在构造函数中调用init方法是否违反了Clean Code

c++ - MS Visual Studio 2017 上的 Variadic 模板编译问题

c++ - Linux 中跨进程的文件 I/O?

c++ - 如何让 CLion 在保存时自动构建

c++ - 这个 RLE 解码函数只解码第一个字符,我做错了什么?

c++ - 我收到错误 : call of overloaded ‘max(Cents&, Cents&)’ is ambiguous

c++ - 关于 new 和 delete 的使用,以及 Stroustrup 的建议