2014年1月26日

C++对象模型(五):The Semantics of Data Data语义学

摘要: 本文是《Inside the C++ Object Model》第三章的读书笔记。主要讨论C++ data member的内存布局。这里的data member 包含了class有虚函数时的vptr和vtable的布局情况。1. 开头几个小问题 1. 首先回答一个问题: 一个空类,sizeof是多少?答案是1。因为编译器会生成一个隐晦的1bytes,用于区分,当该类多个对象时,各个对象都能在内存分配唯一地址。 2. 还有虚函数表的指针vptr,可能在类的开始,也可能在类的结尾。通常是类的结尾。(注:比较新的VC++和GCC都是在开头。不知道是否所有的版本都是)。 3. 关于成员变量的内存对齐. 阅读全文

posted @ 2014-01-26 21:29 anzhsoft 阅读(265) 评论(0) 推荐(0) 编辑

导航