#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?
本文探讨了C++中不同类的大小及其原因,重点分析了classE和classF为何大小为24字节,涉及内存对齐原则的应用。
3003

被折叠的 条评论
为什么被折叠?



