- 静态局部变量
静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;
它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;
- 静态成员变量
C++中static成员变量的初始化顺序和声明的顺序不一致,和初始化语句的先后顺序有关。
- 非静态成员变量
非静态成员在初始化列表的初始化顺序只和在类定义体内声明的顺序有关;即成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。
- 初始化位置
类中const成员常量必须在构造函数初始化列表中初始化。
类中static成员变量,只能在类内外初始化(同一类的所有实例共享静态成员变量)。
- 基类派生类成员
下面是C++类成员变量初始化顺序:
• 1) 基类的静态变量或全局变量
• 2) 派生类的静态变量或全局变量
• 3) 基类的成员变量
• 4) 派生类的成员变量