通过多个继承的对象大小
Size of object through Multiple inheritance
我有一个C类C,该类别从两个A和B继承。这些类别具有名为I的私人成员,而我知道私人成员不会继承。当我打印出派生对象的大小时,我会得到12个大小,但我希望它是4的,因为成员不会继承。当大小显示为12而不是4个?
#include<iostream>
using namespace std;
class A
{
private:
int i;
public:
A():i(1){}
};
class B
{
private:
int i;
public:
B():i(2){}
};
class C : private B,private A
{
int i;
public:
C():i(3){}
public:
void disp()
{
//cout<<A::i<<endl;
cout <<"i = "<< i<<endl;
}
};
int main()
{
C c1;
cout <<"sizeof c object = "<< sizeof(c1)<< endl;
c1.disp();
return 0;
}
output :
sizeof c object = 12
i = 3
,我知道私人成员不会继承。
但是它们是。
私人成员是派生类的一部分,但不是可访问。这解释了为什么您的派生类的大小为12。
相关文章:
- 如何创建从同一类继承的不同对象的向量
- 如何在QT Creator上将QWidget声明为继承类的对象
- 如果'C'公开继承'B',B 私下继承'A',为什么我不能在"C"中创建"A"的对象?
- 私有字段对象与私有继承?
- 为什么我不能在主函数之外定义一个类的对象(它继承了另一个类)?
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 使用智能指针附加的继承对象的深层复制
- 如何继承返回对当前对象的引用的方法?
- C++具有空派生类对象的继承大小
- 防止在按值传递对象(继承)时进行切片
- 具有多个继承共享一个资源的对象 - 寻找良好的设计模式
- 对象成员变量还是继承
- 继承 - 查找类的对象的大小
- 成员子对象继承存储持续时间是否有任何非直观的副作用
- 访问从 QObject 继承的对象继承的类的Q_Properties
- c++如何返回当前类类型的对象(继承)
- 在对象继承中构造对象后设置稍后的值
- c++ -从其他对象继承std::元组,并为其添加虚函数
- 我有一个基对象和派生类对象的向量,但我无法访问存储在向量中的派生对象继承的数据成员
- 从基础对象继承接口是一种好的做法吗