程序员面试宝典p119中说到:初始化列表的初始化顺序是根据变量的声明顺序来执行的
如下代码:#include
using namespace std;
class base
{
private:
int m_j;
int m_i;
public:
base(int i) :m_j(i), m_i(m_j){}
base() :m_j(0), m_i(m_j){}
int get_i(){ return m_i; }
int get_j(){ return m_j; }
};
int main()
{
base obj(98);
cout << obj.get_i() << " " << obj.get_j() << endl;
return 0;
}
根据这个原则,输出结果第一个为随机数,第二个结果为98.
但从执行结果来看是:98 98