C++继承与派生——(1)继承的层次关系

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
再好的种子,不播种下去,也结不出丰硕的果实!

一起加油!

        编写程序是为了解决现实世界中的实际问题,类采用了人类思维中的抽象和分类的方法,类与对象的关系恰当地反映了个体与同类群体共同特征之间的关系。而不同的类也具有共性和特性通过继承可以实现类之间的求同存异,避免再次编写相同的代码。继承性是面向对象技术最重要的基本特征。继承机制很好地实现了代码的重用和扩充,大大提高了程序开发的效率。

        类的继承和派生的层次结构,就是人们对自然界中的事物进行分类、分析和认识的过程在程序设计中的体现。现实世界中的事物都是相互联系、相互作用的,人们在认识的过程中,根据它们的实际特征,抓住其共同特征和细小差别,利用分类的方法进行分析和描述。一个直观的例子就是交通工具的分类,这个分类层次如图所示。这个层次图反映了交通工具的派生关系,最高层是抽象程度最高的,是最具有普通和一般意义的概念,下层具有了上层的特性,同时加人了自己的新特性,而最下层是最为具体的。在这个层次结构中,由上到下,是一个具体化、特殊化的过程:由下到上,则是一个抽象化的过程。上下层之间的关系就可以看作基类与派生类的关系。

        从图中可以看出,下一层的所有交通工具都具备了上一层交通工具的特点,并且每个还具备自己的新特性。这种分类方式考虑了事物之间的共性和个性的关系,这种描述问题的方法反映到面向对象的程序设计中就是类的继承和派生。

        继承是从前辈那里获得属性和行为,派生是在已有的类的基础上产生新的类,派生出来的新的类保持原类特征的同时可以加人自己独有的新特征。原有的类被称为基类或父类,新产生的类则被称为派生类或子类。一个派生类可以进一步派生出新的类,这样就形成了类之间的层次关系。通过类的派生可以建立具有共同关键特征的对象家族,从而实现代码的重用,这种继承和派生的机制十分便于对已有程序的发展和改造。

         以上就是我对C++继承与派生——(1)继承的层次关系的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++继承与派生的理解,请持续关注我哦!!! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

摄像头画面作为电脑桌面背景

1. 创建文件main.pyw,文件内容 import base64 import io import os import threading import tkinter as tkimport cv2 import pystray import win32api import win32con import win32gui from PIL import Image, ImageTk from pystray import MenuItem, Menuclass…

Kubernetes 架构原则和对象设计

什么是 Kubernetes Kubernetes 是谷歌开源的容器集群管理系统 • 基于容器的应用部署、维护和滚动升级; • 负载均衡和服务发现; • 跨机器和跨地区的集群调度; • 自动伸缩; • 无状态服务和有状态服务; • 插件机制…

多表插入操作——后端

场景:当添加一个菜品时,还需要记录菜品的口味信息,因此需要对菜品表(dish)和口味表(dish_flavor)同时进行插入操作。 两个表的字段: 代码思路:由DishController将前端的…

多个文件保存路径不同,如何批量改为相同的文件名称并添加编号

大伙在日常工作中有没有遇到需要修改文件名称吗?平时遇到修改文件名称是如何操作呢,是按比较重统的方法操作,点右键重命名,这个方法是可以使用,如果量少情况可以使用这个方法操作,如果量大,文件…

防火墙-iptables详解

前言:最近的工作中,需要对防火墙进行配置,但是很多地方都是老机器,有的用iptables,有的用firewalld,我写下这篇文章,彻底地了解这两个应用软件的使用方法。在以后的工作中,相信很多人…

程序员必知!开放封闭原则的实战应用与案例分析

开放封闭原则是面向对象设计中的重要原则之一,它要求软件实体(类、模块、函数等)应该对扩展开放,但对修改关闭。这意味着当需要添加新功能时,不应该修改现有的代码,而是应该通过扩展来实现。这可以通过使用…

Linux上随机输出谚语的程序fortune

概要: Linux上有一个随机输出谚语的程序叫fortune 手册对它的描述是:输出一个随机的、充满希望的、有趣的谚语 本篇所用的系统是Ubuntu22.04 一、fortune的安装 sudo apt install fortune-mod 二、fortune的使用 1、示例一 这个谚语是什么意思啊…

机器学习与深度学习傻傻分不清?快来!

导读:本文探讨机器学习和深度学习之间的关键区别和相互联系,目的是为大家提供一个清晰的框架,帮助大家理解这两种技术的特点、应用场景以及选择适当方法的依据。(理论辨析,无实践代码,放心食用)…

CEC2013(python):五种算法(GA、WOA、GWO、DBO、HHO)求解CEC2013(python代码)

一、五种算法简介 1、遗传算法算法GA 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、蜣螂优化算法DBO 5、哈里斯鹰优化算法HHO 二、5种算法求解CEC2013 (1)CEC2013简介 参考文献: [1] Liang J J , Qu B Y , Suganthan P N , et al. Prob…

STM32内部是怎么工作的

STM32是怎么工作的 1 从孩子他妈说起2 早期计算机的组成2.1 五大元件(1)第一个出场的是电容元件(2)第二个出场的是二极管(3)第三个出场的是电阻元件(4)第四个出场的是电感&#xff0…

【论文简述】Learning Depth Estimation for Transparent and Mirror Surfaces(ICCV 2023)

一、论文简述 1. 第一作者:Alex Costanzino 2. 发表年份:2023 3. 发表期刊:ICCV 4. 关键词:深度感知、立体匹配、深度学习、分割、透明物体、镜子 5. 探索动机:透明或镜面(ToM)制成的材料,从建筑物的玻…

RabbitMQ入门指南(三):Java入门示例

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、AMQP协议 1.AMQP 2.Spring AMQP 二、使用Spring AMQP实现对RabbitMQ的消息收发 1.案例准备阶段 2.入门案例(无交换机) 3.任务模型案例(Work Queues&#xff0…

文献速递:生成对抗网络医学影像中的应用——用于生成前列腺MR-only影像治疗剂量规划的合成CT的深度学习模型:多中心研究

文献速递:生成对抗网络医学影像中的应用——用于生成前列腺MR-only影像治疗剂量规划的合成CT的深度学习模型:多中心研究 本周给大家分享文献的主题是生成对抗网络(Generative adversarial networks, GANs)在医学影像中的应用。文…

Chatgpt如何多人使用?如何防止封号?

时下火爆年轻人的AI技术当属于Chatgpt,但他是一把双刃剑,使用它给我们带来便利的同时,也可能会带来隐患,因此我们需要科学使用AI技术。 本文将针对备受关注的Chatgpt如何多人共享使用?如何防止封号,为你带…

python堆-完全二叉树--完全解读

作者:20岁爱吃必胜客(坤制作人),近十年开发经验, 跨域学习者,目前于海外某世界知名高校就读计算机相关专业。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。…

PHP 读取excel输入为HTML

目录 介绍 安装扩展 读取excel文件 输入为html 保存到文件 总结 介绍 以前都是使用phpexcel,不过已经不再更新了, 不过不用担心还可以使用phpspreadsheet来替代它进行操作。 PHPSpreadsheet-在PHP中读取、创建和编写电子表格文档-电子表格引擎。…

SpringBoot代码混淆与反混淆加密工具详解

目录 反编译 混淆 正文 一共就两步,无需源码,直接对ipa文件进行混淆加密 打开要处理的IPA文件 设置签名使用的证书和描述文件 开始ios ipa重签名 简单就是把代码跑一哈,然后我们的代码 .java文件 就被编译成了 .class 文件 反编译 就是…

高精度地图定位模块技术规范

目 录 1 概述................................................................................................... 5 1.1 适用范围...................................................................................... 5 1.2 规范性引用文件....................…

Multimodal Chain-of-Thought Reasoning in Language Models语言模型中的多模态思维链推理

Abstract 大型语言模型 (LLM) 通过利用思维链 (CoT) 提示生成中间推理链作为推断答案的基本原理,在复杂推理方面表现出了令人印象深刻的性能。然而,现有的 CoT 研究主要集中在语言情态上。我们提出了 Multimodal-CoT,它将语言(文本…

MyBatis-Plus(一):根据指定字段更新或插入

根据指定字段更新或插入 1、概述2、实现方式2、总结 1、概述 MyBatis-Plus中提供了一个saveOrUpdate()方法,默认情况下可以根据主键是否存在进行更新或插入操作,但是实际场景中,根据指定字段进行更新或插入的情况也非常多见,今天…