类中的虚函数表对sizeof的影响
来源:互联网 发布:护肤品数据 编辑:程序博客网 时间:2024/05/21 20:25
我们用sizeof测一个类所占内存空间的大小时,会得到什么结果,虚函数表有什么影响?
如果一个类里面什么也不实现,只实现一个或多个虚函数的话,测它的sizeof会得到4,但如果一个类从多个类继承,并且它的多个基类有虚函数的话,它就会有多个虚函数表了,这个在COM也有体现.如下例
class A
{
public:
virtual void PrintA1(void)
{
}
virtual void PrintA2(void)
{
}
};
class B
{
public:
virtual void PrintB(void)
{
}
};
class C
{
public:
virtual void PrintC(void)
{
}
};
class D : public A, public B, public C
{
};
测试结果是
sizeof(D) = 12;
如果D类改成下面的样子,即在它里面再加一个虚函数,结果还是12
class D : public A, public B, public C
{
public:
virtual void PrintD(void)
{
}
};
但要注意的是有虚基类后情况就又不同了,具体的还要调查.
本文用菊子曰发布
- 类中的虚函数表对sizeof的影响
- 虚函数对sizeof的影响
- 虚函数、虚继承对sizeof的影响
- 虚继承和虚函数对sizeof的影响
- 虚函数和虚继承对sizeof的影响
- c++普通继承、虚继承、虚函数对sizeof的影响
- 类对象切割对虚函数调用的影响
- 类对象切割对虚函数调用的影响
- 虚函数对数据结构内存的影响
- 继承、 虚继承和虚函数表对类的大小的影响
- 虚函数的sizeof
- 虚继承对构造函数的影响
- 虚函数对C++多态的影响
- html中的注释对样式表的影响
- 虚函数&虚继承存在对类的大小的影响
- C++虚继承(七) --- 虚继承对基类构造函数调用顺序的影响
- 字节对齐--对sizeof计算产生影响
- C++ 虚继承对基类构造函数调用顺序的影响
- [Hardware] 硬盘分区表知识——详解硬盘MBR
- C#读写注册表
- linux下线程的同步示例
- Java中二进制和字符串之间的相互转换
- 函数返回引用时要注意的问题
- 类中的虚函数表对sizeof的影响
- 构造类的大三原则(读自VCKBase),及拷贝构造函数与=运算符的重载
- 定义一个结构体数组并初始化时出现的问题
- Oracle 连不上的各种现象
- HDU 1403 Longest Common Substring
- C++ STL填充算法
- 不知道什么地方出了问题
- 《如何阅读一本书》读书笔记(2)
- 如何选择开源许可证?