Fork me on GitHub
  2014年4月7日
摘要: 这篇文章我要简单地讲解下c++对象的内存布局,虽然已经有很多很好的文章,不过通过实现发现有些地方不同的编译器还是会有差别的,希望和大家交流。在没有用到虚函数的时候,C++的对象内存布局和c语言的struct是一样的,这个比较容易理解,本文只对有虚函数的情况作分析,大致可以从以下几个方面阐述,1. 单一继承2. 多重继承3. 虚继承下面循序渐进的逐个分析,环境是ubuntu 12.04.3 LTS+gcc4.8.1单一继承为了实现运行时多态,虚函数的地址并不能在编译期决定,需要运行时通过虚函数表查找实际调用的虚函数地址。单一继承主要要弄明白两个问题:1.虚函数表在哪里?2. 基类和派生类的虚函数 阅读全文
posted @ 2014-04-07 01:01 coderkian 阅读(1650) 评论(10) 推荐(1) 编辑


作者:coderkian
出处:http://www.cnblogs.com/coderkian/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。