g++编译器对象模型
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////////
class Base
{
public:
Base(int a = 10):a(a)
{
}
virtual void show()
{
cout << "Base::show()" << endl;
}
private:
int a;
};
在linux g++64位编译器下,这个类为什么是16字节的,不应该是8位的虚表指针加上int 4个字节共十二字节吗?
只包含一个char的类的大小是4字节,说明对齐方式是四字节,难道有两种对齐方式,小于4的对齐成4字节,大于4的对齐成8字节?