破嗯哈不 2023-03-18 11:01 采纳率: 87.5%
浏览 27
已结题

C++继承虚基类后的大小怎么理解


#include<iostream>
using namespace std;
 
class A  //大小为4
{
public:
    int a;
};
class B :virtual public A  //大小为12,变量a,b共8字节,虚基类表指针4
{
public:
    int b;
};
class C :virtual public A //与B一样12
{
public:
    int c;
};
class D :public B, public C //24,变量a,b,c,d共16,B的虚基类指针4,C的虚基类指针
{
public:
    int d;
};
 
int main()
{
    A a;
    B b;
    C c;
    D d;
    cout << sizeof(a) << endl;
    cout << sizeof(b) << endl;
    cout << sizeof(c) << endl;
    cout << sizeof(d) << endl;
    system("pause");
    return 0;
}

我的运行结果:

4
24
24
48

与原文作者不同
附原文链接 https://blog.csdn.net/bxw1992/article/details/77726390?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167910674216800222860778%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167910674216800222860778&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-77726390-null-null.142^v74^insert_down4,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=c%2B%2B%E8%99%9A%E7%BB%A7%E6%89%BF&spm=1018.2226.3001.4187

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-03-18 11:02
    关注

    sizeof和不同编译器是有关的,不同很正常

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月18日

悬赏问题

  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效