C++中派生类对基类成员的三种访问规则

2023-11-15



C++中派生类对基类成员的访问形式主要有以下两种:
1
、内部访问:由派生类中新增成员对基类继承来的成员的访问。
2
、对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。今天给大家介绍在3中继承方式下,派生类对基类成员的访问规则。

 

1、私有继承的访问规则
当类的继承方式为私有继承时,基类的public成员和protected成员被继承后成为派生类的private成员,派生类的其它成员可以直接访问它们,但是在类的外部通过派生类的对象无法访问。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类的成员还是通过派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数间接访问。私有继承的访问规则总结如下:

基类成员

private成员

public成员

protected成员

内部访问

不可访问

可访问

可访问

对象访问

不可访问

不可访问

不可访问

 

2、公有继承的访问规则
当类的继承方式为公有继承时,基类的public成员和protected成员被继承到派生类中仍作为派生类的public成员和protected成员,派生类的其它成员可以直接访问它们。但是,类的外部使用者只能通过派生类的对象访问继承来的public成员。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数直接访问它们。公有继承的访问规则总结如下:

基类成员

private成员

public成员

protected成员

内部访问

不可访问

可访问

可访问

对象访问

不可访问

可访问

不可访问

 

3、保护继承的访问规则
 
当类的继承方式为保护继承时,基类的public成员和protected成员被继承到派生类中都作为派生类的protected成员,派生类的其它成员可以直接访问它们,但是类的外部使用者不能通过派生类的对象访问它们。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是通过派生类的对象,都无法直接访问基类中的private成员。保护继承的访问规则总结如下:
 

基类成员

private成员

public成员

protected成员

内部访问

不可访问

可访问

可访问

对象访问

不可访问

不可访问

不可访问

 http://www.cppblog.com/woaidongmao/archive/2010/07/01/119024.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中派生类对基类成员的三种访问规则 的相关文章

随机推荐

  • No such operator image::read_file问题解决

    在学习动手学深度学习这门课的时候 在13 6 节 标检测数据集这一章遇到了问题 读取数据的时候报错 No such operator image read file 网上有人说问题在于pytorch版本和torchvision版本不对应 可
  • weixin-js-sdk使用

    注意 以下内容自身的项目为uniapp编译生成微信小程序 小程序内嵌webview 一 微信初始化 安装微信sdk npm install weixin js sdk save 页面引入 import wx from weixin js s
  • 构建高性能数据库缓存之Redis(一)

    一 Redis概述 1 1 什么是redis Redis是一个开源的用ANSI C编写 支持网络 基于内存 亦可持久化的日志型 Key Value数据库 根据DB Engines com站点月度排行的数据显示 Reidis是最流行的键值对存
  • SpringBoot整合MinIO

    文章目录 1 问题背景 2 前言 3 步骤 3 1 引入依赖 3 2 连接MinIO服务端的必要参数 3 3 代码实现文件上传功能 3 4 验证 1 问题背景 前面搭建了MinIO容器 现在来研究SpringBoot整合MinIO 2 前言
  • 并发编程基础知识(一)[进程篇]

    目录 一 程序的执行方式 1 进程是什么东西 2 进程与程序区别 3 进程状态 4 linux进程地址空间布局 5 linux下进程相关的API函数 1 创建一个新进程 2 进程退出 3 等待子进程退出 4 让一个进程去执行一个指定的程序文
  • 什么是迁移学习(Transfer Learning)?【精讲+代码实例】

    文章目录 1 Introduction 2 Development of Machine Learning 3 What is transfer learning 4 How to transfer 4 1 Example 1 物体识别 4
  • UE4 C++ 类的4种引用类型,和异步加载资产

    UE4 C 类的4种引用类型 和异步加载资产 4种引用类型 对象引用 引用 World 的实例对象 就是直接定义 UPROPERTY EditAnywhere BlueprintReadOnly Category My 对象引用 UWorl
  • Hive分组排序

    系统环境 Linux Ubuntu 16 04 jdk 7u75 linux x64 hive 1 1 0 cdh5 4 5 hadoop 2 6 0 cdh5 4 5 mysql 5 7 24 相关知识 Hive中支持多种分组操作 Ord
  • 【D-S证据理论】学习笔记

    Dempster Shafer证据理论学习笔记 引言 证据理论最早由Dempster提出主要用来解决不确定性问题的主要工具 后来被Shafer改进 现在被称为D S证据理论 D S证据理论的突出优势就是能够刻画信息的不确定性和未知性 该理论
  • 数字化转型战略下的数据安全问题及治理对策

    随着数字化转型在各行业的持续推进 数据作为生产的重要要素 其安全性日益受到关注 如何在数据安全各项法律法规的强监管下 确保企业业务合法 数据使用合规 业务有序发展成为当前全行业关注的焦点 本文将分析当前数字化转型背景下的数据安全现状 梳理存
  • 华三ftp服务器信息发布命令,h3cne命令行.doc

    h3cne命令行 PAGE13 NUMPAGES13 目 录 TOC o 1 3 h z u HYPERLINK l Toc283211304 1 常规系统维护 PAGEREF Toc283211304 h 2 HYPERLINK l To
  • 已知三角形的两点坐标,和三个边长,求第三点的坐标

    前几天做一个功能 实现N多圆球的碰撞时 写的该算法 代码比较容易 使用了三角形的余弦定理 算法是二维的 改成三维也容易 其实三维的我也实现过 用于骨骼动画的IK处理上 1 已知三角形的两点坐标 和三个边长 求第三点的坐标 2 bool Ca
  • 多数据源连接池

    做元数据管理 需要查询多个数据源的元数据 不用orm框架 直接用java实现 如下 主要有几个重要的类 MultiPool 连接池 ConnectionManager 连接管理器 DBConenction 数据库连接对象 1 MultiPo
  • 网络层协议--IP简析 && 域名系统

    IP 因特网协议 ICMP 因特网控制协议报文 ARP 地址解析协议 RARP 反向地址解析协议 ip地址分类 A类 大型网络 0 开头 7位网络号 主机标识24位 B类 中型网络 10 开头 14位网络号 主机标识16位 C类 小型网络
  • PCL1.8的那些坑!各种编译及使用问题汇总

    在win10上用vs2013编译及使用pcl180遇见了各种坑 这里做个汇总 既是总结 也希望能给后来人引路 1 编译到visualization模块的时候 会有如下语句报错 if pcl visualization getColormap
  • DRM驱动程序开发思路和实践

    DRM驱动程序开发思路和实践 DRM Direct Rendering Manager 是Linux内核中的一个模块 用于管理GPU的渲染功能 在开发Linux下的图形驱动程序时 我们需要使用DRM模块作为基础 通过它来访问GPU的硬件资源
  • 20K测试工程师面试会考察哪些能力?

    前言 今年刚接触了 功能 测试工程师的面试工作 有遇到对信贷业务流程较熟悉的 工作内容纯测试app功能的 什么都接触过但是不够深入的 发现简历上写的东西和实际真的有点差距 面试也是一个艺术活 为了更好地考察面试者的能力 让面试工作更加有条理
  • switch更新主机服务器维护,switch更新链接不到服务器

    switch更新链接不到服务器 内容精选 换一换 客户在云容器引擎上搭建服务为手机应用订阅信息 首先客户端会向部署在CCE集群上的服务端 redis 发起请求 成功订阅信息服务 后继服务端侧会定时推送订阅的消息给客户端 服务端部署后 第一次
  • 编译cm for nexus5

    dependence bison build essential curl flex git gnupg gperf libesd0 dev liblz4 tool libncurses5 dev libsdl1 2 dev libwxgt
  • C++中派生类对基类成员的三种访问规则

    C 中派生类对基类成员的访问形式主要有以下两种 1 内部访问 由派生类中新增成员对基类继承来的成员的访问 2 对象访问 在派生类外部 通过派生类的对象对从基类继承来的成员的访问 今天给大家介绍在3中继承方式下 派生类对基类成员的访问规则 1