C++ 继承中的对象模型与继承中构造和析构顺序
继承中的对象模型
**问题:**从父类继承过来的成员,哪些属于子类对象中?
示例:
复制代码
利用工具查看:Visual Studio 的开发人员命令提示符
打开工具窗口后,定位到当前 CPP 文件的盘符
然后输入: cl /d1 reportSingleClassLayout 查看的类名 所属文件名
效果如下图:
结论: 父类中私有成员也是被子类继承下去了,只是由编译器给隐藏后访问不到
继承中构造和析构顺序
子类继承父类后,当创建子类对象,也会调用父类的构造函数
问题:父类和子类的构造和析构顺序是谁先谁后?
示例:
复制代码
速记:构造时现有父亲后又儿子,析构顺序相反(白发送黑发)
总结:继承中 先调用父类构造函数,再调用子类构造函数,析构顺序与构造相反
版权声明: 本文为 InfoQ 作者【CtrlX】的原创文章。
原文链接:【http://xie.infoq.cn/article/8a194d3a7222d7de353151d88】。文章转载请联系作者。
评论