#include <iostream>
using namespace std;
class People
{
private:
int a;
protected:
int b;
public:
int c;
};
//类的内部检验继承访问权限 继承方式:私有private
/*class Student : private People
{
public:
void show() //内部继承访问
{
//a = 1; //私有 不可以访问
b = 2; //保护 可以被访问
c = 3; //公有 可以被访问
}
};*/
/*class Student : protected People //继承方式:保护protected
{
public:
void show() //内部继承访问
{
//a = 1; //私有 不可以访问
b = 2; //保护 可以被访问
c = 3; //公有 可以被访问
}
};*/
class Student : public People //继承方式:公有public
{
public:
void show() //内部继承访问
{
//a = 1; //私有 不可以访问
b = 2; //保护 可以被访问
c = 3; //公有 可以被访问
}
};
//类的外部访问类的继承权限
int main()
{
//Student s;
/*//s.a = 1; //私有 不可以被访问 外部继承方式:private
//s.b = 2; //保护 不可以被访问
s.c = 3; //公有 不可以被访问*/
/*Student s;
//s.a = 1; //私有 不可以被访问 外部继承方式:protected
//s.b = 2; //保护 不可以被访问
//s.c = 3; //公有 不可以被访问*/
Student s;
//s.a = 1; //私有 不可以被访问 外部继承方式:public
//s.b = 2; //保护 不可以被访问
s.c = 3; //公有 可以被访问
return 0;
}
总结
private继承:
内部:基类私有 在派生类中不可以被访问 基类保护、公有 在派生类中可以被访问
外部:基类私有、保护、公有 在派生类中都不可以被访问
protected继承
内部:基类私有 在派生类中不可以被访问 基类保护、公有 在派生类中可以被访问
外部:基类私有、保护、公有 在派生类中都不可以被访问
public继承:
内部:基类私有 在派生类中不可以被访问 基类保护、公有 在派生类中可以被访问
外部:基类私有、保护在派生类中不可以被访问 基类公有 在派生类中可以访问