这里主要是说序列初始化成员变量时,存在这样的规则:
1. 先进行序列初始化,再进行构造函数函数体内的赋值等操作。
2. 序列初始化,不是简单的自左至右或自右至左,而是根据成员变量的定义顺序来初始化。
测试代码:
#include <iostream>
#include <algorithm> using namespace std; class lv
{
public:
lv(int g):g1(g++),g2(g++)
{
g3 = g++;
cout << g1 <<endl;
cout << g2 <<endl;
cout << g3 <<endl;
}
~lv()
{
cout << "bye" << endl;
}
int g3;
int g2;
int g1;
}; int main()
{
lv h(); return ;
}
结果截图: