C++中一个类的成员变量初始化有两种初始化方法,一种是采用初始化列表形式,一种是采用构造函数是初始化,对于后者没什么顺序而言,但是对于前者就有顺序问题了。基本思想是,初始化列表的顺序与成员变量的定义顺序一致。如下测试代码:

其结果为一个随机数和98,并不是两个98。
因为先定义了m_i,再定义了m_j,所以进行初始化列表时先初始化m_i(m_j),由于此时m_j值不清楚,因些为随机数,然后进行m_j(98),因此m_j为98。
如果代码换成如下样子,则结果为2个98:

其结果为一个随机数和98,并不是两个98。
因为先定义了m_i,再定义了m_j,所以进行初始化列表时先初始化m_i(m_j),由于此时m_j值不清楚,因些为随机数,然后进行m_j(98),因此m_j为98。
如果代码换成如下样子,则结果为2个98:
