1. C++变量的初始化方式
首先把需要初始化的成员变量分为几类:
Ø 一般变量(int)
Ø 静态成员变量(static int)
Ø 常量(const int )
Ø 静态常量(static const int)
对应的初始化方式是:
Ÿ 一般变量可以在初始化列表里或者构造函数里初始化,不能直接初始化或者类外初始化
Ÿ 静态成员变量必须在类外初始化
Ÿ 常量必须在初始化列表里初始化
Ÿ 静态常量必须只能在定义的时候初始化(定义时直接初始化)
举一个简单的例子:
- #include <iostream>
- #include <string>
- using namespace std;
- class Test
- {
- private:
- int a;
- static int b;
- const int c;
- static const int d=4;
- public:
- Test():c(3) //a(1)或者在初始化列表里初始化
- {
- a=1;
- }
- };
- int Test::b=2;
- void main()
- {
- Test t;
- }
2. 类成员变量初始化顺序
C++
有如下几条:
1构造函数初始化列表的变量优先于构造函数(至少明显的写在前面) (若都在初始化列表中初始化,则按声明顺序初始化,与初始化列表中的顺序无关)