一、背景知识
1:首先遵从内存对齐规则
2:只有虚函数会占4个字节,其他的函数不占内存;无论多少个虚函数,只有这一个指针,4字节。//注意一般的函数是没有这个指针的,而且也不占类的内存;
3、静态变量由于属于所有类对象共同所有,所以不占内存
二、典型的计算类的占用内存的问题
1空类的问题
class CBase
{
};
sizeof(CBase)=1;
{
};
sizeof(CBase)=1;
原始的C结构经过改造,成了面向对象世界的基石——类。除了成员变量外,C++类还可以封装成员函数和其他东西。然而
除非 为了实现虚函数和虚继承引入的隐藏成员变量外,C++类实例的大小完全取决于一个类及其基类的成员变量!成员函数基本上不影响类实例的大小。内联函数也不会影响类的大小。
例子:
- struct B {
- public :
- int bm1;
- protected :