类的内存分布或大小

来源:互联网 发布:java 日志级别 trace 编辑:程序博客网 时间:2024/06/05 19:23

         类Class的大小或结构体Struct的大小,简单的说就是内存对齐吧!

         简单的说就是往大的对齐,这个时候就是考察数据定义前后了,譬如:

         Struct pack{

              bool bFlag;

              int    nValue;

              char cValue;

        }

        它是多少?1+4+1=6,不是,复合类型往大的对齐,它是23.

        所以,我们在定义结构体(或者包)时,一定要注意不要让二义性的结构把你搞晕了。

       

        言归正传吧,类的内存分布,类是面向对象的核心概念,三个特征封装,继承,多态;多态太了不起了,什么搞大上的框架结构都向它靠拢,还必须会用了解精髓。

        想了解类的内存分布以及多态的实现机制,那么在Visual Studio 2013(本人VS版本)的 工具->属性->配置属性->C/C++->命令行 的“其他选项”内填写 /d1 reportAllClassLayout即可,然后编写类,派生类,以及具有virtual的类等,进行编译,那么控制台自动打印它的内存大小及布局,以及所谓的vptr虚拟指针,虚拟表的关系,自己研究一下吧!

     

原创粉丝点击