基类与派生类,类派生列表说明符,public,protected,private的作用

以什么方式继承基类的共有数据成员;例:

#include<iostream>

using namespace std;

class A{
    int n;
    static int sn;
protected:
    int np; 
    static int sn2;
public:
    static int sn3;
    int a;
};

class B:private A{
    int f(){ 
        //return n; //这个使错误的,提示已定义,不可访问
        return np;//可访问protected成员。
    }
};

class C :public B{
    int b(){
        //return sn3;//错误,不可访问。
        //return a;  //同上
    }
};

int main(){
    //A::sn = 0;//错误,不可访问
    //A *b=new B;//当B private继承A时,此处错误提示,不允许对不可访问的基类A进行类型转换,public就没问题
    B a;
    //a.a = 0;//错误提示,不可访问
    A::sn3=0;
    return 0;
}

总结

首先回顾一下三种成员访问限定符(包括静态成员):
public(公用的):既可以被本类中的成员函数所引用,也可以被类的作用域内的其他函数(即类外)引用。
private(私有的):只能被本类中的成员函数引用,类外不能调用(友元类除外)
protected(受保护的):不能被类外访问,但可以在派生类的成员函数访问。

接下来就用一张表总结一下基类成员在派生类中的访问属性:这里写图片描述

可以这么简单的认为:
1、凡是基类中私有的,派生类都不可访问。
2、基类中除了私有的成员,在派生类中的访问属性总是 以安全性高{ 继承方式,基类的访问属性 } 的方式呈现。(安全性级别:私有>保护>公有)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值