破嗯哈不 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 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!