#include <iostream>
class Empty{
};
class Nonempty{
int i;
};
class Ce{
int x;
Empty e;
};
class De1: public Empty{
int x;
};
class De2: private Empty{
int x;
};
class Cne{
int x;
Nonempty e;
};
class Dne1: public Nonempty{
int x;
};
class Dne2: private Nonempty{
int x;
};
int main() {
// 1
std::cout << sizeof(Empty) << std::endl;
// 8 x占4字节,e占1字节,字节对齐后为8.
std::cout << sizeof(Ce) << std::endl;
// 4 空白基类优化(empty base optimization)
std::cout << sizeof(De1) << std::endl;
// 4 空白基类优化(empty base optimization)
std::cout << sizeof(De2) << std::endl;
// 4
std::cout << sizeof(Nonempty) << std::endl;
// 8
std::cout << sizeof(Cne) << std::endl;
// 8
std::cout << sizeof(Dne1) << std::endl;
// 8
std::cout << sizeof(Dne2) << std::endl;
}
empty class对象空间开销--空白基类优化
最新推荐文章于 2021-05-05 11:08:12 发布