初始化列表详解
1.类中包含以下成员,必须放在初始化列表位置进行初始化:
               1. 引用成员变量  
 
                2.const成员变量  
 
                3. 自定义类型成员(且该类没有默认构造函数时 ) 
 
 
2. 成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关
内置类型成员
1.如果没有在类中声明默认值,也没有初始化列表显式赋值,那么就直接不管内置类型的初始化了,没有对应初始化指令,是内存残留值。
自定义类型
1.自定义类型不能在类中声明默认值,如果没有显式调构造,编译器会去自动调自定义类型的默认构造,如果不存在默认构造就报错
静态成员变量为什么必须在类外初始化?
1. 静态成员的核心特性
-  共享性:类的所有对象共享同一份静态成员。 
-  生命周期:存在于程序的整个生命周期(类似全局变量)。 
-  存储位置:不在对象内存中,而是存储在全局/静态数据区 
2.语言规则要求
-  声明定义分离: -  类内:仅作声明(告诉编译器存在这个静态成员)。 
-  类外:实际分配内存并初始化(定义) 
 
-  
3.初始化语法规则
基本形式
cpp
// 类内声明
class MyClass {
public:static int s_value;  // 声明(不分配内存)
};// 类外定义和初始化
int MyClass::s_value = 42;  // 必须出现在.cpp文件中