含有虚函数的空类的内存大小
来源:互联网 发布:slam包括的算法 编辑:程序博客网 时间:2024/06/12 20:20
02 using namespace std;
03
04 class Base1{
05 virtual void fun1(){}
06 virtual void fun11(){}
07 public:
08 virtual ~Base1();
09 };
10
11 class Base2{
12 virtual void fun2(){}
13 };
14
15 class DerivedFromOne: public Base2
16 {
17 virtual void fun2(){}
18 virtual void fun22(){}
19 };
20
21 class DerivedFromTwo: public Base1, public Base2
22 {
23 virtual void fun3(){}
24 };
25
26 void main()
27 {
28 cout << "sizeof Base1 " << sizeof(Base1) << endl;
29 cout << "sizeof Base1 " << sizeof(Base2) << endl;
30 cout << "sizeof FromOne " << sizeof(DerivedFromOne) << endl;
31 cout << "sizeof FromTwo " << sizeof(DerivedFromTwo) << endl;
32 getchar();
33 }
输出:
4,4,4,8
说明:
1)一个类中若有虚函数,(不论是自己的虚函数,还是继承而来的),那么类中就有一个成员变量:虚函数指针,这个指针指向一个虚函数表,虚函数表的第一项是类的typeinfo信息,之后的项为此类的所有虚函数的地址。
2)假设经过成员对齐后的类的大小为size个字节。那么类的sizeof大小可以这么计算:size + 4*(虚函数指针的个数n)。代码中,DerivedFromTwo继承自2个分支,所以有2个虚函数指针,所以sizeof大小为0 + 4* 2 = 8。
3)带有虚函数的类的sizeof大小,实际上和虚函数的个数不相关,相关的是虚函数指针。
- 含有虚函数的空类的内存大小
- 关于空类,含有虚函数的类的大小
- 有虚函数的类所占内存大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 含有虚函数的类sizeof大小
- 类中含有虚函数的剖析
- 含有虚函数的C++类大小
- C++中一个空类含有哪些默认的成员函数
- 关于空类 含有虚函数类 占有空间大小
- 类的占用内存大小
- 含有虚函数的类对象的空间大小
- 空类的函数
- (虚)继承类的内存大小计算
- 含有虚函数类的对象在内存中的结构
- 含有纯虚函数的例子
- 含有虚函数的内存布局
- Web服务器工作原理概述
- Python语言基础
- spring入门到精通(一)
- 1048. Find Coins 解析
- day_05文件系统及vi编辑器
- 含有虚函数的空类的内存大小
- 浅谈hibernate的sessionFactory和session
- python学习之函数
- java从高到低取出数的每一位
- Spring使用与ssh整合
- nodejs fs API
- ztree.js
- 8种排序其中的五种
- Educational Codeforces Round 5 C