在c++ 2011中为变量设置默认值
Setting default values for ivars in C++ 2011
我理解现在将ivar初始化为默认值是完全可以接受的:
class A{
MyType T=MyValue;
}
这个想法是,MyType
在类实例化时已经被定义为默认值。
但是我需要澄清的是,是否仍然建议对这个变量使用构造函数的成员初始化列表。如果是这样,那么像上面那样设置默认值有什么意义呢?
-
如果类成员在所有构造函数中总是用相同的值初始化,则使用内联初始化式。这消除了冗余,并很可能提高可读性。
-
如果不同的构造函数初始化成员不同,则使用构造函数初始化列表。
可以在初始化器列表中重写内联初始化器,但这在风格上存在问题。如果有疑问,请不要这样做,并/或咨询项目的样式指南。
通过类内成员初始化器设置成员变量的值,如果存在合理的默认值,则允许为成员指定默认值。这避免了在可以接受默认值的构造函数中重复默认初始化。如果不能接受默认值,可以用构造函数的初始化列表覆盖默认值。
如果没有可接受的默认值,那么使用类内成员初始化器似乎毫无意义,因为每个构造函数都会显式初始化它。
相关文章:
- 将双精度变量设置为另一个变量的值
- 将变量设置为类型模板
- 如何为具有整数名称的变量设置位集
- 在 c++ 中将多个变量设置为相同的值
- 我是否必须在类中的所有变量C++设置为 private?
- 在C 中,如何使用变量设置Char Grid2d [x] [y]
- 如果将变量设置为等于新对象,旧对象会发生什么情况?
- C++ 给出编译器错误,将一个(静态)常量全局变量设置为另一个静态常量变量
- 是否可以将类成员变量设置为类函数的结果?
- 将 c++ 代码中的当前用户环境变量设置为对其他进程(如 cmds)可见
- 此CMAKE错误意味着什么?我的变量设置为未发现
- 如何基于用户设置的初始变量设置一组常数值
- 如何使用const成员变量设置数组大小
- 使用变量设置数组长度
- 使用变量设置bitset的大小
- 在C 中,如何将派生类中的私有变量设置为基类的输入值
- C 标量变量设置为零值
- C 定义变量设置值
- 正在将类级别的2D数组变量设置为传入值-C++
- 是否有C++标准类在作用域出口处将变量设置为值