2.2C++公有继承与私有继承

news2024/11/26 16:47:09

C++公有继承

C++中的公有继承是指一个类可以从另一个类继承公有成员,包括公有成员函数和变量。

公有继承是面向对象编程中最基本的继承方式,它表示父类的公有成员在子类中仍然是公有成员,可以被外部访问。

我写一个 Animal 的基类,它有一个公有成员函数 run() 和一个公有变量 age:
在这里插入图片描述
接着我创建一个名为 Dog 的子类,它从 Animal 类继承公有成员:

在这里插入图片描述
在这个 demo 中,Dog 类公有继承了 Animal 类的成员函数 run() 和变量age。

这意味着我可以在 Dog 类中直接调用这些成员函数和变量:
在这里插入图片描述
公有继承还允许将 Dog 类的对象作为 Animal 类的对象来使用:
在这里插入图片描述
公有继承是C++中最基本的继承方式,非常常见,我建议读者好好学下。

C++私有继承

C++中的私有继承是指一个类可以从另一个类继承私有成员,包括私有成员函数和变量。

私有继承不仅允许子类从父类继承私有成员,并在子类内部访问这些成员,还允许子类重新定义父类的成员函数。

私有继承是面向对象编程中一种比较特殊的继承方式,它表示父类的私有成员在子类中仍然是私有成员,只能被子类内部访问。

我 写一个 Person 基类,它有一个私有成员变量 name 和一个公有成员函数 sayHello():
在这里插入图片描述
接着我创建一个名为 Student 的子类,它从 Person 类私有继承了成员:
在这里插入图片描述
在这个例子中,Student 类私有继承了 Person 类的成员变量 name 和成员函数 sayHello()。

这意味着我们可以在 Student 类中直接调用这些成员函数和变量,但是在 Student 类外部是无法访问这些成员的:
在这里插入图片描述
私有继承还允许在子类中重新定义父类的成员函数:
在这里插入图片描述
我写的这个demo ,重新定义了sayHello() 函数,使其输出更适合 Student 类的信息。

由于私有继承的特性,只有 Student 类内部可以访问这个新定义的函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/665539.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪些公司里面有高性能计算方向cuda方向岗位?

CUDA可以为高性能计算、科学计算、深度学习和人工智能、图形渲染和游戏开发、并行数据处理等领域提供了强大的并行计算能力和编程模型。它加速了计算任务的执行,推动了科学研究和创新的进程,同时也为开发者提供了更多的工具和资源,促进了开放…

留个档,Unity Animator state节点的Motion动态替换AnimationClip

前言 由于Unity没有提供直接替换的API,所以在仅限的API下进行逻辑操作。 替换的原理是差不多的,利用AnimatorOverrideController,进行运行时的覆盖。 网上搜索很多文章是利用 名字字符串作为hash的key来进行替换。不满足我自己项目中的需求…

【系统开发】尚硅谷 - 谷粒商城项目笔记(五):分布式缓存

文章目录 分布式缓存缓存使用场景redis作缓存中间件引入redis依赖配置redis堆外内存溢出 缓存失效问题缓存穿透缓存雪崩缓存击穿 Redisson分布式锁导入依赖redisson配置类可重入锁读写锁缓存一致性解决 缓存-SpringCache简介Cacheable自定义缓存配置CacheEvictCachePut原理与不…

【网络】协议的定制与Json序列化和反序列化

文章目录 应用层初识TCP协议通讯流程定制协议再谈协议网络版本计算器Protocal.hppCalServerCalClient Json的安装 应用层 我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层 初识TCP协议通讯流程 建立链接和断开链接 基于TCP协议&#xff0c…

六、使用深度学习构建人脸识别模型

本章介绍机器学习中人脸识别的历史以及从零开始如何构建一个人脸识别模型,含所有训练数据,源代码,不强制要求GPU。使用 docker 来管理库依赖项,提供与平台无关的一致环境。使用 Dlib 进行预处理,使用 Tensorflow + Scikit-learn 训练能够根据图像预测身份的分类器。 1、人…

《吉林省教育学院学报》简介及投稿邮箱

《吉林省教育学院学报》简介: 主管单位 吉林省教育厅 主办单位 吉林省教育学院 出版周期:月刊 国际刊号:ISSN:1671-1580;国内刊号:CN:22-1296/G4;邮发代号:12-223 出…

创建线程三种方法

创建和运行线程 方法一,直接使用 Thread // 创建线程对象 Thread t new Thread() { public void run() {// 要执行的任务} }; // 启动线程 t.start(); 例如: // 构造方法的参数是给线程指定名字,推荐Thread t1 new Thread("t1"…

Doris的安装

Doris的安装 文章目录 Doris的安装写在前面Linux 操作系统版本需求软件需求操作系统安装要求设置系统最大打开文件句柄数时钟同步关闭交换分区(swap) 开发测试环境生产环境 安装下载安装包默认端口集群部署前置准备安装部署FE安装部署BE在 **FE** 中添加…

2.1C++派生

C派生概述 C中的派生允许从一个已有的类中创建一个新的类,该新类继承了原有类的属性和方法。 派生类可以增加新的属性和方法,也可以重写原有类的方法以改变其行为。 C中的派生类可以通过公有、私有和保护继承来继承基类的成员。 公有继承允许派生类访…

网络协议驱动互联网

在分布式系统中,数据通过各种网络协议在网络中传输。作为应用程序开发者,这往往在问题出现之前似乎是一个黑盒子。 在本文中,我们将解释常见网络协议的工作原理,它们在分布式系统中的应用以及我们如何解决常见问题。后续还会介绍一…

开源一键拥有你自己的ChatGPT+Midjourney网页服务,用不用是另一回事,先收藏!

功能支持 原ChatGPT-Next-Web所有功能 midjourney imgine 想象 midjourney upscale 放大 midjourney variation 变幻 midjourney describe 识图 midjourney blend 混图 midjourney 垫图 绘图进度百分比、实时图像显示 自身支持midjourney-api 参数说明 MIDJOURNEY_PROXY_URL …

组态王与多台PLC之间无线以太网通信

在实际系统中,同一个车间里分布多台PLC,通过上位机集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候,如果布线的话,工程量较大耽误工期,这种情况下比较适合采用无线通信方式。 本方案以组态王和2…

java -D详解

官方文档对 -D 有明确的解释,具体看 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 简单解释一下 首先,java 命令是这么用的 其次,-D 是属于 [options] 这一块的。而 [options] 又分为如下几类 -D 就属于标准选…

企业级医疗项目:码猿慢病云管理系统来了!

大家好,我是不才陈某~ 不知不觉转行到医疗领域已经两年多了,前后服务过三百多家医疗机构,深耕于医疗领域,不知道在座的各位有从事医疗领域工作的吗? 上个月和朋友搞了一套的企业级的医疗实战项目:码猿慢病云…

Arthas线上故障案例分析——内存使用率上升,负载突然变高

使用经验分享 线上故障排查思路: 1、紧急处理,优先保障服务可用(如切换vip,主备容灾) 2、保留第一现场,通过jstack -l {pid} > jvmtmp.txt ,打印栈信息 (后续可以在gceasy官网上…

Maven插件开发及Demo演示

引言 maven不仅仅只是项目的依赖管理工具,其强大的核心来源自丰富的插件,可以说插件才是maven工具的灵魂。本篇文章将对如何自定义maven插件进行讲解,希望对大家有所帮助。 背景 讲如何开发maven插件之前,不妨先来聊一下什么是…

STM32速成笔记—定时器

文章目录 一、什么是定时器二、定时器有什么用三、通用定时器详细介绍3.1 时钟来源3.2 预分频器,计数器,自动重装载寄存器3.2.1 预分频器3.2.2 计数器3.2.3 自动重装载寄存器 3.3 触发控制器 四、PWM4.1 什么是PWM4.2 什么是占空比4.3 STM32F1 PWM介绍4.…

【Python 随练】打印菱形图案

题目: 打印出如下图案(菱形) ********* ****************简介: 在本篇博客中,我们将使用Python代码打印一个菱形图案。我们将提供问题的解析,并给出一个完整的代码示例来生成这个菱形图案。 问题分析&am…

阿里云开源离线同步工具DataX3.0,用于数据仓库、数据集市、数据备份

DataX是阿里云开源的一款离线数据同步工具,支持多种数据源和目的地的数据同步,包括但不限于MySQL、Oracle、HDFS、Hive、ODPS等。它可以通过配置文件来定义数据源和目的地的连接信息、数据同步方式、数据过滤等,从而实现数据的高效、稳定、可…

C++初阶—完善适配器(反向迭代器)

目录 0. 前言 1、反向迭代器定义 2、反向迭代器需要实现的相关函数 3、反向迭代器分析 4、针对vector物理空间结构分析 5、针对list物理空间结构分析 6、反向迭代器适配器的实现及测试 0. 前言 本篇文章主要根据前面所实现的STL中支持迭代器的容器进行完善,使…