Я правильно понимаю, что у нас при приватном наследовании, уровень приватных членов производного класса делится как бы на приватный и на приватный приватный. То есть при приватном наследовании, поле базового класса уходит в разряд приватных полей производного, если оно было в публичных у базового - к такому полю в производном классе мы можем обратиться через публичный метод производного. Поле базового класса уходит в разряд приватных приватных производного, если оно было приватным в базовом - к такому полю мы можем обратиться так: публичные методы производного -> приватные методы от унаследованные от базового -> (на приватном приватном уровне) переменная унаследованная от базового ( которая там была приватной)?
Соответственно если создать иерархию N классов одним приватным наследованием, то можно иметь N подуровней приватного уровня в крайнем потомке))
#include <iostream>
using namespace std;
class A{
public:
A(){ch = 'A'; a = 100;}
void showA(){
cout << ch << endl;
}
int a;
private:
void showC(){
cout << "C" << endl;
}
char ch;
};
class B : A{
public:
void showB(){
showA();
}
void showZ(){
cout << a << endl;
}
// void showCh(){
// cout << ch << emdl;
// }
private:
};
int main()
{
B obj;
obj.showZ();
obj.showB(); // output: A
//obj.showCh(); // error
return 0;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости