c++ class

来源:百度知道 编辑:UC知道 时间:2024/05/10 19:59:07
//为什么没有任何成员的类sizeof(A)会是1?
class A{
public:
private:

};
//为什么有一个内建类型成员加一个没有任何操作的虚函数sizeof(B)会变大(不是double类型的大小),
//它的规律又是什么呢??
//是不是虚函数在做怪?那它除了动态联编,虚基类外还有什么任用?
class B{
public:
B(){
bb=0;
}
virtual ~B(){}
private:
long int bb;
};
//为什么没有A 成员时sizeof(C)是8刚好是Double 的大小,加上A 后却是12(应该是9才对啊)?
class C{
private:
A ca;
B cb;
};
//注:我是INtel 奔腾4 2.4Ghz处理器,256MB内存,是不是和我的具体硬件有关系呢?,非常想知道答案,希望高手说的详细点!谢谢!

C++的类中,只要有虚函数就会有一张虚表(也就是一个指针)所以变大了.
至于类的实际大小与你想像中不一样是因为你还不了解"字节对齐", 在结构体struct和类class中存在字节对齐问题, 赶快复习一下C语言吧