<P>派生类与基类中<FONT color=#0000ff>构造函数的调用顺序</FONT>是<FONT color=#ff0000>先调用基类</FONT>的构造函数对基类成员进行初始化。然<FONT color=#ff0000>后执行派生类</FONT>的构造函数,如果基类仍是派生类,则这个过程递归进行。</P>3 | H7 G! Y* G- ~/ E
<P>当派生类还<FONT color=#ff0000>包括对象成员</FONT>时,则<FONT color=#0000ff>基类</FONT>的<FONT color=#ff0000>构造函数先被调用</FONT>,<FONT color=#0000ff>对象成员</FONT>的构造函数<FONT color=#0000ff>次之</FONT>,<FONT color=#ff0000>最后执行派生类</FONT>的<FONT color=#0000ff>构造函数</FONT>。在有<FONT color=#ff0000>多个</FONT><FONT color=#0000ff>对象成员</FONT>的情况下,这些对象成员的<FONT color=#ff0000>调用顺序取决于</FONT>它们在派生类中<FONT color=#ff0000>被说明</FONT>的顺序。</P>
4 U4 g6 z+ e2 x<P>派生类与基类中<FONT color=#0000ff>析构函数</FONT>的调用顺序与上面的执行构造函数的顺序正好相反。即<FONT color=#ff0000>先执行派生类</FONT>的析构函数,<FONT color=#ff0000>再调用基类</FONT>的析构函数。</P>
" S& [( h# n6 S. q0 i6 O/ |7 D9 p<P>多重继承的构造函数与析构函数调用顺序没有作要求,但是我们还是了解一下,这种情况下,基类构造函数执行顺序按它们被继承时说明的顺序依次调用,与它们在被始化列表中的顺序无关。</P> |