我在理解下面的代碼時遇到了一些困難。我有3個類:A,B和C.A有一個int類型的私有x。 B繼承A和它的一切。 C從B繼承,但受保護。這意味着在類C中X和Y都變得不可訪問。此外,get_x()和get_y()在類C中變得受到保護。因此C應該能夠訪問get_x()和get_y()函數,但不能訪問x和y?如果你想要的成員函數訪問,則使B和C. 公共接入做到這一點... C類無法訪問受保護的成員
#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;
}