У меня есть класс 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
Частные члены наследуются. Вы просто не можете получить доступ к их именам. – Quentin
Частные члены также наследуются. но они не могут быть доступны без методов родительского класса. –
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что он основан на простом заблуждении «частного» наследования. –