• C++ 空类与多重继承的空类占用内存空间


    1、输出以代码结果

    #include <iostream>
    
    using namespace std;
    
    class A {};
    
    class A2 {};
    
    class B : public A {};
    
    class C : public A, public A2 {};
    
    class D : public virtual B {};
    
    
    int main()
    {
        cout << sizeof(A) << endl;
        cout << sizeof(B) << endl;
        cout << sizeof(C) << endl;
        cout << sizeof(D) << endl;    
        
        return 0;
    
    }

    2、结果

    1
    1
    1
    4

    3、析

    空类所占内空间为1

    单一继承或多重继承空类的空类所占空间还是1

    但虚继承涉及虚指针,指针大小为4,故虚继承后空类所占空间为4

  • 相关阅读:
    12.1
    我的火车头
    头文件优化时间
    一些姿势
    CodeForces
    CodeForces
    [SDOI 2015] 约数个数和
    BZOJ
    [国家集训队] middle
    鹅的问题
  • 原文地址:https://www.cnblogs.com/aqing1987/p/4210773.html
Copyright © 2020-2023  润新知