虚继承类内存大小计算
来源:互联网 发布:telnet 端口号不通 编辑:程序博客网 时间:2024/06/07 12:06
参考文档:http://blog.csdn.net/hackbuteer1/article/details/7883531
计算公式基于64-bit os,指针大小为8
问题一:含有虚函数类继承的类大小计算
#include<iostream>using namespace std;class A{};class B{ char ch; virtual void func0(){}};class C{ char ch1; char ch2; virtual void func(){} virtual void func1(){}};class D:public A,public C{ int d; virtual void func(){} virtual void func1(){}};class E:public B,public C{ int e; virtual void func0(){} virtual void func1(){}};int main(){ cout<<"A="<<sizeof(A)<<endl; // 空类大小为1 cout<<"B="<<sizeof(B)<<endl; // 虚函数占用一个虚函数类表指针位置 大小为8 数据对齐 输出16 cout<<"C="<<sizeof(C)<<endl; // 两个虚函数占用一个虚函数类表指针位置 大小为8 数据对齐 输出16 cout<<"D="<<sizeof(D)<<endl; // 两个基类占用一个虚函数类表指针位置 大小为8 int占内存4 数据对齐 输出16 cout<<"E="<<sizeof(E)<<endl; // 两个基类占用两个虚函数类表指针位置 大小为16 int占内存4 char 2 数据对齐 输出24 return 0;}
问题二:含有虚基类和虚函数的计算
#include<iostream>using namespace std;class A{ int a;};class B: virtual public A{private: int b;public: virtual void func1(){} virtual void func2(){}};class C:virtual public A{private: int b2;public: virtual void func3(){} virtual void func4(){}};class D:public B,public C{private: int d;public: virtual void func1(){} virtual void func3(){}};int main(){ cout<<"A="<<sizeof(A)<<endl; // 大小为int大小4 cout<<"B="<<sizeof(B)<<endl; // 虚函数占用一个虚函数类表指针位置 大小为8 两个int 8 输出16 cout<<"C="<<sizeof(C)<<endl; // 虚函数占用一个虚函数类表指针位置 大小为8 两个int 8 输出16 cout<<"D="<<sizeof(D)<<endl; // 两个基类占用两个虚函数类表指针位置 大小为16 一个虚基类表 大小为8 int占内存16 数据对齐 输出40 return 0;}
问题三:单虚继承
#include<iostream>using namespace std;class A{public: virtual void func1(){} virtual void func2(){}private: char ch[3];};class B: virtual public A{public: virtual void func3(){} virtual void func4(){}};int main(){ cout<<"A="<<sizeof(A)<<endl; // 大小为int大小4 cout<<"B="<<sizeof(B)<<endl; // 单继承有一个虚函数类表指针位置 大小为8 三个char 3 输出16 return 0;}
0 0
- 虚继承类内存大小计算
- (虚)继承类的内存大小计算
- 虚继承与对象内存大小
- 代码分析虚继承类的所占内存大小问题
- c++类占用内存大小计算
- 计算内存大小
- C++类所占内存大小计算
- java Object类占用内存大小计算
- C++类所占内存大小计算
- java Object类占用内存大小计算
- C++类所占内存大小计算
- C++类的所占内存大小计算)
- 如何计算C++类占用内存大小
- java Object类占用内存大小计算
- C++类所占内存大小计算
- 计算对象占用内存大小工具类
- C++类所占内存大小计算
- C++类所占内存大小计算
- 我的Android进阶之旅------>RxJava学习资料汇总
- 获取浏览器名称和版本号
- 关键代码段(临界区)实现线程死锁
- Java Runnable and Thread
- webpack loader
- 虚继承类内存大小计算
- 拷贝构造函数与赋值构造函数
- SVM核函数
- 2016 UESTC Training for Data Structures B - 卿学姐与基本法 自己构建了一个和堆有点像的数据结构
- 逆置/反转单链表
- yum install lrzsz
- 支付宝的SDK 编译 #include <openssl/asn1.h> not found
- 写在即将16个小时火车硬座,没办法,爱情
- Java:JVM的内存区域划分