#include <iostream>
class A{};
class B{};
class C:public A{
double f;
virtual void fun();
};
class D:public A,public B
{};
class E:public C,public A{};
class F:public A,public C{};
class G:public A{
//double f;
virtual void fun();
};
int main()
{
std::cout << sizeof(A) << std::endl;
std::cout << sizeof(B) << std::endl;
std::cout << sizeof(C) << std::endl;
std::cout << sizeof(D) << std::endl;
std::cout << sizeof(E) << std::endl;
std::cout << sizeof(F) << std::endl;
std::cout << sizeof(double) << std::endl;
std::cout << sizeof(G) << std::endl;
return 0;
}
输出结果为:
1
1
16
1
24
24
8
4
class E 和 class F 的大小为什么是24?
这里涉及到内存对齐原则,但是不理解为什么是24?