派生类对象内存分配问题··········求助!

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:40:51
class A
{
public:
int _a;
A()
{
_a=1;
}
void print()
{
cout<<_a<<endl;
}
};
class B : public A
{
public:
int _a;
B()
{
_a=2;
}
};
以上是两个类A 和B,B是A的派生类,
在主函数中定义一个B的对象b
计算sizeof(b)=8,
问题:我认为派生类B中的_a覆盖掉了B中的_a,所以B中只有一个int型的数据成员,可为什么计算sizeof(b)=8呢?另外的四个字节内存放的是什么呢?
··············求助大侠指教!!

因为B是A的派生类,B继承了A,所以A中的_a也被继承过来了,A中的_a属于被继承过来的,B中的_a是本身自带的,所以B有2个变量,那么相应的2个INT型变量就占了8个字节,那么在输出的时候是以B中本身的_a为主,用句成语理解就是强龙不压地头蛇

sizeof是内置运算符,返回变量的首地址占用字节数。你放几个数据成员应该都是8
8是8个字节共64位