【C++】继承 二、protected 保护继承 - 示例

1、protected 保护继承

protected 保护继承 : 父类成员 在 子类 中 , 访问控制权限 变为 protected , 基类的 公有成员 和 保护成员 可以在子类访问 , 私有成员不可在子类中访问 ;

父类中的访问控制权限 如下变化 :

父类中的 public 成员 变为 子类中的 protected 成员 ;

父类中的 protected 成员 仍然是 protected 成员 ;

父类中的 private 成员 仍然是 private 成员 ;

2、代码示例 - protected 保护继承

在下面的代码中 ,

基类 ( 父类 ) 中 , 定义了 公有变量 a , 保护变量 b , 私有变量 c ;

派生类 ( 子类 ) 中 , 分别访问了上述 3 个变量 ;

  • 访问 公有变量 a : 保护继承 基类 公有变量 在子类中 变为 保护变量 , 该变量可 在 派生类中 被访问 ;
  • 访问 保护变量 b : 保护继承 基类 保护变量 在子类中仍是 保护变量 , 该变量在子类中是 保护成员 , 可以在 基类内部 和 子类内部访问 ;
  • 访问 私有变量 c : 保护继承 基类 私有变量 在子类中仍是 私有变量 , 该变量是 子类 中的 私有成员 , 只能在 基类中访问 ,
  • 类外部访问 派生类 ( 子类 ) 继承的 3 个变量 ;

  • 访问 公有变量 a : 基类中的公有成员 , 保护继承 子类中 变成 保护成员 , 可以在类外部访问 ;
  • 访问 保护变量 b : 基类中的保护成员 , 保护继承 子类中仍是 保护成员 , 不可在类外部访问 ;
  • 访问 私有变量 c : 基类中的私有成员 , 保护继承 子类中仍是 私有成员 , 不可在类外部访问 ;
  • #include "iostream"using namespace std;

    class Parent {public:int a;

    protected:int b;

    private:int c;};

    // 子类 保护继承 父类class Child : protected Parent {public:void changeVar() {// 可访问 : 父类 公有成员 变为 保护成员// 可在 类内部 , 子类内部 访问该成员a = 0;

        // 可访问 : 父类 保护成员 可以在 类内部 和 子类内部访问
        b = 0;
    
        // 报错 : “Parent::c”: 无法访问 private 成员(在“Parent”类中声明)
        // 私有成员只能在本类中访问 , 子类 和 类外部无法访问
        //c = 0;
    }
    
    

    };

    int main() {

    Child child;
    child.changeVar();
    
    // 不可访问 : 基类中的公有成员
    // 保护继承 子类中仍是 公有成员 , 可以在类外部访问
    //child.a;
    
    // 不可访问 : 基类中的保护成员
    // 保护继承 子类中仍是 保护成员 , 不可在类外部访问
    //child.b;
    
    // 不可访问 : 基类中的私有成员
    // 保护继承 子类中仍是 私有成员 , 不可在类外部访问
    //child.c;
    
    
    // 控制台暂停 , 按任意键继续向后执行
    system("pause");
    
    return 0;
    
    

    }

全部评论

相关推荐

屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务