struct
A {
int x;
int y;
A() : y( 2 ), x( 3 ) { }
};
foo.cc: In constructor `A::A() ' :
foo.cc: 3 : warning: `A::y ' will be initialized after
foo.cc: 2 : warning: ` int A::x '
int x;
int y;
A() : y( 2 ), x( 3 ) { }
};
foo.cc: In constructor `A::A() ' :
foo.cc: 3 : warning: `A::y ' will be initialized after
foo.cc: 2 : warning: ` int A::x '
Google了一下,应该是构造函数里面成员的初始化顺序和声明的不一致引起的,没有深究下去了,本来构造和析构就是一个灰色地带,如果里面依赖关系很复杂,真是没办法说清楚的,所以,还是KISS算了。