#include<iostream>
using namespace std;
class B{
public:
int z;
void getx(int i)
{x=i;}
int putx()
{return x;}
private:
int x;
protected:
int y;
};
class C:protected B{
public:
int p;
void getall(int a,int b,int c,int d,int e,int f);
void disp();
private:
int m;
protected:
int n;
};
void C::getall(int a,int b,int c,int d,int e,int f)
{
//x=a; //错,x是类B的私有数据成员,在派生类中不能直接访问,只能通过基类共有成员函数间接访问
getx(a);
y=b;//可以直接访问,y在基类B中为保护成员,保护继承后,在类C中仍为保护成员
z=c;//可以直接访问,y在基类B中为共有成员,保护继承后,在类C中仍为保护成员
m=d;
n=e;
p=f;
}
void C::disp()
{
//cout<<x<<endl; //错,x是类B的私有数据成员,在派生类中不能直接访问,只能通过基类共有成员函数间接访问
cout<<"x="<<putx()<<"\n"<<"y="<<y<<"\n"<<"z="<<z<<endl;
cout<<"m="<<m<<"\n"<<"n="<<n<<endl;
}
int main()
{
C obj;
obj.getall(1,2,3,4,5,6);
obj.disp();
cout<<"p="<<obj.p<<endl;//可以用对象直接访问,因为p类C的共有数据成员
system("pause");
return 0;
}
类的保护继承
最新推荐文章于 2023-12-22 00:03:37 发布