EBCO技术

来源:互联网 发布:电磁辐射检测软件 编辑:程序博客网 时间:2024/06/14 02:01

  • 什么是 EBCO 技术
  • EBCO 技术示例


什么是 EBCO 技术?

EBCO:Empty Base Class Optimization,空基类优化。
C++ 标准规定,当空类作为基类时,只要不会与同一类型的另一个对象或子对象分配在同一地址,就不需要为其分配任何空间。

空类:运行期内其内部表示不消耗任何内存,常见于只包含类型成员、非虚成员函数和静态数据成员的类;非静态数据、虚函数和虚基类则会在运行时消耗内存。

EBCO 技术示例

#include <iostream>using namespace std;class EmptyClass {    typedef int Int;};class EmptyClassDerived : public EmptyClass {};class EmptyClassDDerived : public EmptyClassDerived {};int main(int argc, char* argv[]){    cout << sizeof(EmptyClass) << endl; // output: 1    cout << sizeof(EmptyClassDerived) << endl; // output: 1    cout << sizeof(EmptyClassDDerived) << endl; // output: 1    return 0;}

空基类的大小只占1个字节,也就是说当作为其他类的成员的时候,它只占一个字节再根据实际情况进行内存对齐。


CSDN 辣鸡 MD 编辑器,无序列表格式全丢