Tan*_*gar 2 c++ class c++11 c++14
class A
{
int a = 100;
};
Run Code Online (Sandbox Code Playgroud)
和
class A
{
int a;
public :
A()
{
a = 100;
}
};
Run Code Online (Sandbox Code Playgroud)
我知道有两种方法,因为静态变量在类外部初始化,并且不能在类中完成.但是如果我使用构造函数或在声明本身期间初始化变量a(一个普通的int),它会有什么不同.
根据CPP核心指南:http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-in-class-initializer
C.48:在构造函数中为成员初始化器添加类内初始化器,用于常量初始化器
原因明确指出在所有构造函数中都应使用相同的值.避免重复.避免维护问题.它导致最短和最有效的代码.
在您的确切示例中,差异并不是那么大.但是随着类变得越来越复杂,并且您添加了子类和多个构造函数,能够在一个位置定义默认值可以简化代码.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |