构造函数与析构函数调用顺序

[复制链接]
发表于 2008-9-29 20:23:51 | 显示全部楼层 |阅读模式
<P>派生类与基类中<FONT color=#0000ff>构造函数的调用顺序</FONT>是<FONT color=#ff0000>先调用基类</FONT>的构造函数对基类成员进行初始化。然<FONT color=#ff0000>后执行派生类</FONT>的构造函数,如果基类仍是派生类,则这个过程递归进行。</P>
; w7 A$ x+ }" ~, O' B. L& F% t<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 G' d% b3 Z) G! j+ j, y. o
<P>派生类与基类中<FONT color=#0000ff>析构函数</FONT>的调用顺序与上面的执行构造函数的顺序正好相反。即<FONT color=#ff0000>先执行派生类</FONT>的析构函数,<FONT color=#ff0000>再调用基类</FONT>的析构函数。</P>) ]; J" q1 I' P8 Y9 i( B
<P>多重继承的构造函数与析构函数调用顺序没有作要求,但是我们还是了解一下,这种情况下,基类构造函数执行顺序按它们被继承时说明的顺序依次调用,与它们在被始化列表中的顺序无关。</P>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19052200号-1

在本版发帖
关注公众号
QQ客服返回顶部