关于C++构造函数初始化顺序

这里主要是说序列初始化成员变量时,存在这样的规则:

1. 先进行序列初始化,再进行构造函数函数体内的赋值等操作。

2. 序列初始化,不是简单的自左至右或自右至左,而是根据成员变量的定义顺序来初始化。

测试代码:

 1 #include <iostream>
 2 #include <algorithm>
 3 
 4 using namespace std;
 5 
 6 class lv
 7 {
 8 public:
 9     lv(int g):g1(g++),g2(g++)
10     {
11         g3 = g++;
12         cout << g1 <<endl;
13         cout << g2 <<endl;
14         cout << g3 <<endl;
15     }
16     ~lv()
17     {
18         cout << "bye" << endl;
19     }
20     int g3;
21     int g2;
22     int g1;
23 };
24 
25 int main()
26 {
27     lv h(99);
28     
29     return 0; 
30 }

结果截图:

posted @ 2016-12-16 10:55  jiu~  阅读(1016)  评论(0编辑  收藏  举报