C++对象内存分配问题
#include <iostream>
using namespace std;
class a
{
public:
char aa;
};
class b:public virtual a
{
public:
char bb;
};
class c:public virtual a
{
public:
};
class d:public b,public c
{
public:
};
int main()
{
a a1;
b b1;
c c1;
d d1;
cout<<sizeof(a1)<<" "<<sizeof(b1)<<endl;
cout<<sizeof(c1)<<endl;
cout<<sizeof(d1)<<endl;
}
为什么b1占9个字节,不是有字节对齐吗?
using namespace std;
class a
{
public:
char aa;
};
class b:public virtual a
{
public:
char bb;
};
class c:public virtual a
{
public:
};
class d:public b,public c
{
public:
};
int main()
{
a a1;
b b1;
c c1;
d d1;
cout<<sizeof(a1)<<" "<<sizeof(b1)<<endl;
cout<<sizeof(c1)<<endl;
cout<<sizeof(d1)<<endl;
}
为什么b1占9个字节,不是有字节对齐吗?
...全文


