小弟现在对继承的问题有些疑惑,当子类继承父类后,子类对象的内存布局是什么样子的呢?有图最好 以c++来说子类对象先是父类的内存拷贝,然后是自己的扩展部分?其中内存中保存的主要是变量吧 函数属于类 对象中只有函数地址,对于虚函数的的函数表又是怎么保存呢? 另外如果在父类和子类中都有this指针的话他们是不是都是指向子类的对象? 对于以上问题不是很清楚,求大侠给出系统解释 ,小弟在此谢过
by gaozhongshan - C/C++ - 2007-07-05 12:59:41 阅读(2103) 回复(3)
如下代码: [code] class A { public: int a; char x; }; class B : public A { public: char y; }; class C : public B { public: char z; }; int main() { cout << sizeof(A) << sizeof(B) << sizeof(C) << endl; return 0; } [/code] 我测试了一下,32位机上,结果为 8,12,12. 肯定涉及到内存对齐的问题。但为什么B和C对象的大小是一样的呢?从内存上来看,这三者对象的数据成员是怎放置的?...
字符串常量存储位置: http://www.9php.com/FAQ/cxsjl/c/2008/03/5313767114032.html 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/87606/showart_2087397.html
[code]class A { A(); int x; c( char ); }; class B :public A { B(); int y; d( char ); }; main() { int i; B b =new B; } ========== 代码段 class A class B main ========== 栈 int i 指针b (new B) ========== 堆 class B { class A { int x (堆里的第1个位置) c(这里是一个指针指向代码段A的c函数地址...
Redis zipmap内存布局分析 本文转自《淘宝核心系统团队博客》,作者为@淘宝千石,文章对Redis的zipmap内部结构进行了分析,主要包括了其内存使用及几个常用API的操作流程。 Redis被称为key/value应用中的瑞士军刀,除了其丰富的数据结构支持,更重要的是高效的内存使用,分析源码可以发现作者使用每一个byte都精打细算。在hashtable实现中,Redis引入了zipmap数据结构,保证在hashtable刚创建以及元素较少时,用更少的内存...
ULK第20章有个例子,关于程序的内存布局的,例子如下:[code]#include
在看书籍ULVMM(understanding the linux vritual memory manager)一书中,42页有这么两句话: the kernel image is located at the physical address 1MB.. Linux tries to reserve the first 16MB of memory of ZONE_DMA.. 一会儿说1MB开始的地方存放内核映像,一会儿说16MB以内用来做ZONE_DMA,是否有冲突,还是本来就是重叠的? 俺是真滴看不懂:oops: 请多指教,谢谢。。
char * fun() { char *s="abc"; return s; } printf("%s",fun()); //结果是乱码 请问“abc”存放在内存哪啊 谢谢 [ 本帖最后由 1980116 于 2007-10-31 18:38 编辑 ]