C++类的大小

 类的大小的计算原则:

1、类大小的计算遵循结构体的对齐原则;
2、类的大小与普通数据成员有关,与虚函数有关,与成员函数和静态成员无关;
3、虚函数对类的大小有影响,是因为虚函数表指针带来的影响(在32位系统里,虚函数的指针为4字节;在64位系统里,虚函数指针为8字节);
4、虚继承对类的大小有影响,是因为虚基表指针带来的影响
5、空类的大小是一个特殊情况,空类的大小为1(实际是和编译器有关的,VS规定为1)。

例子:

64位的操作系统--->虚函数指针为8字节;

char占1字节;int占4字节

#include
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(void)  
{  
    cout<<"A="<

你可能感兴趣的:(c++,数据结构)