У меня есть некоторые трудности с пониманием следующего кода. У меня есть 3 класса: A, B и C. A имеет частный x типа int. B наследует A и все от него. C наследует от B, но защищается. Это означает, что как X, так и Y становятся недоступными в классе C. Кроме того, get_x() и get_y() становятся защищенными в классе C. Таким образом, C должен иметь возможность доступа к функциям get_x() и get_y(), но не x и y?Не удается получить доступ к защищенному элементу
#include<iostream>
using namespace std;
class A
{
int x;
public: A(int i):x(i){}
int get_x(){ return x; }
};
class B: public A
{
int y;
public: B(int i,int j):y(i),A(j){}
int get_y(){ return y; } };
class C: protected B
{
int z;
public: C(int i,int j,int k):z(i),B(j,k){}
int get_z(){ return z; }
};
int main()
{
C c(1,2,3);
cout<<c.get_x();
cout<<c.get_y();
cout<<c.get_z();
return 0;
}