C++中派生类(子类)的访问控制

#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继承:
内部:基类私有 在派生类中不可以被访问 基类保护、公有 在派生类中可以被访问
外部:基类私有、保护在派生类中不可以被访问 基类公有 在派生类中可以访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值