当前位置: 首页 > news >正文

【教程】继承中的访问控制 C++

目录

  • 简介
  • public,protected 和 private
  • 继承中的 public,protected 和 private
  • 示例

简介

在 C++ 中派生类可以通过 public,protected 和 private 三种修饰符决定基类成员在派生类中的访问级别

public,protected 和 private

  1. 公有成员(public):可以在任何地方被访问
  2. 保护成员(protected):只能被类本身及其派生类访问
  3. 私有成员(private):只能被类本身访问

继承中的 public,protected 和 private

  1. public 继承中,基类成员的访问级别在派生类中保持不变
  2. protected 继承中,基类成员中 public 成员在派生类中降为 protected,其余成员的访问控制级别维持不变
  3. private 继承中,基类成员所有的访问级别变为 private
    在这里插入图片描述

示例

class Base {
public:
    int publicVar;
protected:
    int protectedVar;
private:
    int privateVar;
};

class DerivedPublic : public Base {
    void accessBaseMembers() {
        publicVar = 1;       // 可以访问
        protectedVar = 2;    // 可以访问
        // privateVar = 3;  // 不可访问
    }
};

class DerivedProtected : protected Base {
    void accessBaseMembers() {
        publicVar = 1;       // 可以访问,但在派生类外部不可访问
        protectedVar = 2;    // 可以访问
        // privateVar = 3;  // 不可访问
    }
};

class DerivedPrivate : private Base {
    void accessBaseMembers() {
        publicVar = 1;       // 可以访问,但在派生类外部不可访问
        protectedVar = 2;    // 可以访问,但在派生类外部不可访问
        // privateVar = 3;  // 不可访问
    }
};

相关文章:

  • C 语 言 --- 三 子 棋
  • 汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程
  • 【免费】1949-2020年各省人均GDP数据
  • 2019年12月全国POI数据分享(同源历史POI分享系列)
  • Linux 蓝牙音频软件栈实现分析
  • 单引号与双引号在不同编程语言中的使用与支持
  • 【菜鸟飞】在vsCode中安装python的ollama包出错的问题
  • 高频面试题(含笔试高频算法整理)基本总结回顾21
  • C语言【内存函数】详解
  • 对比学习(Contrastive Learning)
  • 浏览器指纹——跨境业务
  • 机器人ROS学习:Ubuntu22.04安装ROS2和Moveit2实现运动规划
  • 【黑马点评|项目】万字总结(上)
  • 将Dify文档中的CSV数据提取并用ECharts可视化工具开发指南
  • 甲骨文找回二次验证的方法(超简单)
  • Java 集合遍历过程中修改数据触发 Fail-Fast 机制 ,导致报ConcurrentModificationException异常
  • 电脑实用小工具推荐--屏幕录制软件Bandicam(班迪录屏)
  • ECharts中Map(地图)样式配置、渐变色生成
  • C语言交换两数
  • Dijkstra算法
  • 剑指3000亿产业规模,机器人“武林大会”背后的无锡“野望”
  • 神十九乘组安全顺利出舱
  • 2024“好评中国”网络评论大赛结果揭晓
  • 国务院安委会对辽宁辽阳一饭店重大火灾事故查处挂牌督办
  • 酒店就“保洁员调包住客港币”致歉,称希望尽早达成解决方案
  • 这场迪图瓦纪念拉威尔的音乐会,必将成为乐迷反复品味的回忆