具有空派生类对象的 C++ 继承大小

标签 c++ inheritance

#include<iostream>
using namespace std;
class base {
 int arr[10];
};
class b1: public base { };

class b2: public base { };

class derived: public b1, public b2 {};

int main(void)
{
    cout << sizeof(derived);
    return 0;
}

因为在 C++ 中默认类的成员是私有(private)的,为什么派生类的 sizeof 是 80。

最佳答案

访问说明符private只与基类成员在派生类中的可访问性有关。派生类包含它派生的类的子对象。在本例中,它包含 b1b2 子对象。所以它的大小是它们两个大小的总和。

关于具有空派生类对象的 C++ 继承大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52117955/

相关文章:

c++ - 除了可访问性,访问说明符还有什么作用?

c++ - 基类中具有相同名称但签名不同的非虚拟函数

c++ - Linux下有没有C++的用户态多线程库/框架?

c++ - 如何给类添加继承结构,引用 "enable_share_on_this"

c# - 有什么方法可以忽略 contentpresenter 中的应用程序资源

c++ - C++中的继承

C++抽象基类和继承

c++ - fileno, errno : What does the "no" mean?(非母语英语)

c++ - 绘制 gl 场景时 CPU 使用率高;起源?

c++ - "const class"是什么意思?