#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class Base2
{
public:
int a;
protected:
int b;
private:
int c;
};
class Son2:public Base2
{
public:
void fun1()
{
a = 100;//父类是公共权限,继承的时候设置为公共,在子类也是公共权限
b = 200;//不在父类中是受保护权限,继承的时候设置为公共,在子类中也是受保护权限
//c = 300;//c在父类中的私有成员 在子类中也是私有权限,子类无法访问
}
};
class Son3 :protected Base2
{
public:
void fun1()
{
a = 100;//父类是公共权限,继承设置为保护权限,在该子类中也是保护权限
b = 200;//父类是保护权限,继承设置为保护权限,在该子类中也是保护权限
//c = 300;//c在父类中的私有成员 在子类中也是私有权限,子类无法访问
}
};
class Son4 :private Base2
{
public:
void fun1()
{
a = 100;//父类是公共权限,继承设置为私有权限,在该子类中也是私有权限
b = 200;//父类是保护权限,继承设置为私有权限,在该子类中也是私有权限
//c = 300; //c在父类中的私有成员 在子类中也是私有权限,子类无法访问
}
};
class sun : public son4 //son4是私有权限不能访问
{
public:
void fun1()
{
//a = 100;
//b = 200;
//c = 300;
}
};
int main(void)
{
Son2 s1;//类的实例化
s1.a = 1;//类外部可以访问公共权限
//s1.b = 2;//类外部不可以访问受保护权限的成员
//s1.c = 3;//类外部不可以访问私有权限的成员
Son3 s2;//类的实例化,Son3是受保护的权限
//s1.a = 1;//父类是公共权限,继承设置为保护权限,类外部不能访问保护权限
//s1.b = 2;//类外部不可以访问受保护权限的成员
//s1.c = 3;//类外部不可以访问私有权限的成员
Son4 s3;
//类外部不可以访问私有权限的成员
/*s1.a = 1;
s1.b = 2;
s1.c = 3;*/
return EXIT_SUCCESS;
}
C++面向对象的继承访问权限
最新推荐文章于 2024-08-03 11:47:07 发布