C++语言的三种封装层级
小标 2018-07-10 来源 : 阅读 780 评论 0

摘要:本文主要向大家介绍了C++语言的三种封装层级,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

本文主要向大家介绍了C++语言的三种封装层级,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

C++的三种封装层级

 

    我们都知道C++的一个好处是封装,在类中有三个封装层次,也是访问的限制,那我们来探索一下public、protect、private这三个家伙。

在定义类中的访问限制

· public:以下的这些成员和方法公开为外界使用,自身、子类都可以使用

· protect:以下的这些成员和方法只限成员本身和子类进行使用,不对其他开放

· private:以下这些成员和方法只能自己使用,不对外界和子类开放

    下面我们上一盘栗子给各位看官吃吃:

//定义一个基类class base {//在内部完全能随便使用public、protect和private三个级别的东西public:

    int a;

    void af() { cout << a << endl; bf(); cf(); };

protected:

    int b;

    void bf() { cout << b << endl; af(); cf(); };

private:

    int c;

    void cf() { cout << c << endl; af(); bf(); };

public:

    base():a(1),b(2),c(3) {};

    ~base() {};

};

class drive :public base {

    void fun() {

        //public级别的能过使用

        cout << a << endl;

        af();

        //protect级别的也能过使用

        cout << b << endl;

        bf();

        //但private级别的不能使用了,以下两行会报错

        cout << c << endl;XXXXXXXXXXXXXX

        cf();XXXXXXXXXXXXXXXXXXXXX

    }

};

int main() {

    base t;

    //public级别能在外界调用

    cout << t.a << endl;

    t.af();

    //但protect和private级别的就不能再外界调用了,以下四行会报错

    cout << t.b << endl;XXXXXXXXXXX

    t.bf();XXXXXXXXXXXX

    cout << c << endl;XXXXXXXXXXXXXX

    c.cf();XXXXXXXXXXXXXXX

 

    drive d;

    //publict继承过来后public级别的能过调用

    d.a;

    d.af();

    //但public继承过来的protect和private就不能调用了

    d.b;XXXXXXXXXXXx

    d.bf();XXXXXXXXXXx

    d.c;XXXXXXXXXXX

    d.cf();XXXXXXXXXXXXX

}

    下面是封装级的一个整理:

 

继承中的三个封装级

    在不同的继承方式中,父类中的封装级会发生不同的变化,下面是继承中相应的三个封装继承的变化:

 

    简单概括一下就是父类中private级别的封装子类不会继承;public的继承会维持父类原来的public、protect前两者的封装级别,而protect继承前两者都会成为protect,private继承将前两者变成private

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C/C+频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程