当我们想要设计几个类分别记录老师,学生的个人信息时会发现,像姓名、地址、身份证号、电话等等记录基础信息的成员变量是都具有的,重复定义会显得冗余,但同时它们两者又具有不同的记录信息的成员变量,像学生需要记录学号,老师需要记录职称,以及不同的成员函数。

可以想个办法,比如将重复的部分单独拎出来,都写在一个类里,然后不同的部分就继承这个类成为一个类,这样的新类就叫做子类(派生类)

继承定义

访问限定符与继承方式一起,总共有9种组合方式

继承方式分为三种

public继承、protected继承、private继承

访问限定符分为三种

public访问、protected访问、private访问

不可见的意思是,基类的私有成员在派生类里是用不了的

但是有间接的方式,可以借助父类的公有成员函数进行使用

记忆方式:访问限定符 取 继承方式和基类的访问限定符小的那个

如果是class,不写继承方式默认就是私有继承

如果是struct,不写继承方式就是默认是公有继承

继承类模板

基类是模板需要实例化,按需实例化,不能直接使用,需要指定类域

因为当派生类实例化时,基类也会被实例化,但由于基类是模板类型,所以成员函数并未实例化,所以找不到

派生类可以是模板类或者非模板类

当是模板类时,派生类可以继承基类模板所以特化版本

当是非模板类时,派生类只能继承基类模板的某个特定实例,这种情况下,派生类在继承时需要指定基类模板的参数,实例化一个具体的基类

基类和派生类的转换

不同类型的对象进行赋值时,会因为类型不同发生类型转换,过程中会出现临时对象,所以引用加类型转换需要加上const(临时对象具有常性)

在public继承中,就有个特殊的例外,派生类对象可以直接赋值给基类的指针或者引用,而不需要加const,因为没有产生临时对象,给的直接是派生类里父类的那一部分

如果是赋值 父=子的形式,就是通过基类的拷贝构造或赋值重载完成,需要进行切割,将子类的自己定义的部分切掉

隐藏

派生类和基础类是可以有同名成员的,如果派生类有与基类函数名相同的成员函数(没有使用virtual关键字)或者相同名字的成员变量,基类的同名成员函数或成员变量将会被隐藏

这意味着在派生类对象上调用该函数时,将调用派生类中的版本,而不是基类中的版本。如果需要调用基类中的被隐藏函数,可以使用作用域解析运算符 :: 来显式指定调用基类中的函数。

派生类的默认成员函数

跟普通类的规则高度相似

分成两个部分分开处理:

1、基类成员(当成整体,调用基类构造)

2、派生类成员(跟普通类一样)

在C++中,当创建一个派生类的对象时,为了确保基类的成员被正确初始化,派生类的构造函数必须显式地调用基类的构造函数。这是因为构造函数不能被继承,所以派生类需要负责初始化其基类的部分

如果允许构造函数被继承,可能会导致初始化顺序的问题。派生类的构造函数需要在初始化派生类成员之前先初始化基类成员,如果构造函数可以被继承,那么这种初始化顺序将无法保证

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

永磁同步电机无速度算法--脉振方波注入法

一、原理介绍为了实现表贴式永磁电机的低速运行,研究一种基于高频方波测试信号注入的无位置零低速传感器控制策略。选取注入到观测直轴的脉振高频方波信号, 该信号注入方案可以有效避免旋转信号注入法在转子交轴分量引起转矩脉动, 提高系统的…

VSCode Python 与 C++ 联合调试配置指南

VSCode Python 与 C 联合调试配置指南 为了实现 Python 与 C 的联合调试,需要正确配置 launch.json 文件,具体配置如下: {// IntelliSense 支持查看属性描述// 更多信息请参考: https://go.microsoft.com/fwlink/?linkid830387"version…

stm32和freeRtos的can总线

STM32内置bxCAN外设(CAN控制器、拓展CAN),支持CAN2.0A和2.0B(全部的CAN),可以自动发送CAN报文和按照过滤器自动接收指定CAN报文,程序只需处理报文数据而无需关注总线的电平细节波特率最高可达1兆位/秒,高速…

充电桩与照明“联动”创新:智慧灯杆破解新能源基建难题

伴随新能源汽车保有量呈现出极为迅猛的爆发式增长态势,充电基础设施的建设已然逐步成为城市发展进程中不可或缺的刚性需求。国家政策鼓励推进充电设施同城市基础设施展开一体化的建设工作,同时大力鼓励“诸如路灯、监控杆这类市政设施去整合充电相关功能…

datagrip连接mysql数据库过程以及遇到的问题

如果遇到这种错误说明时区错误,解决方法 jdbc:mysql://localhost:3306?serverTimezoneGMTdatagrip连接mysql数据库下一步

Vue 3.5 defineModel:让组件开发效率提升 10 倍

简介 defineModel 是 Vue 3.4 引入并在 Vue 3.5 中稳定的一个组合式 API,它简化了组件的双向数据绑定实现。在此之前,实现双向绑定需要手动定义 props 和 emits,而 defineModel 将这个过程自动化,让代码更加简洁和直观。 主要特…

性能测试-性能测试中的经典面试题一

一、核心概念与流程类性能测试的核心类型与区别负载测试:逐步加压,探测系统阈值(如最大TPS/响应时间)。压力测试:超越阈值施压,验证系统崩溃点及恢复能力。稳定性测试:80%~90%峰值压力持续运行&…

华为昇腾芯片:多模态模型国产化的硬核突破

前言 在当今数字化时代,人工智能技术的发展日新月异,多模态模型作为 AI 领域的重要发展方向,正逐渐改变着人们与计算机交互的方式以及众多行业的运作模式。多模态模型能够处理多种类型的数据,比如图像、文本、语音等,从…

阿里智能AI框架Playground,即学即用

Spring AI Alibaba Playground 是 Spring AI Alibaba 社区以 Spring AI Alibaba 和 Spring AI 为框架搭建的 AI 应用。包含完善的前端 UI 后端实现,具备对话,图片生成,工具调用,RAG,MCP 等众多 AI 相关功能。在 playg…

智能Agent场景实战指南 Day 28:Agent成本控制与商业模式

【智能Agent场景实战指南 Day 28】Agent成本控制与商业模式 文章标签 AI Agent, 成本优化, 商业模式, LLM应用, 企业级AI 文章简述 本文是"智能Agent场景实战指南"系列的第28天,聚焦智能Agent的成本控制与商业模式设计这一关键课题。文章首先分析了Ag…

sqli-labs:Less-8关卡详细解析

1. 思路🚀 本关的SQL语句为: $sql"SELECT * FROM users WHERE id$id LIMIT 0,1";注入类型:字符串型(单引号包裹)提示:参数id需以闭合 同样无法像常规一样回显,php输出语句的代码如下&…

LeetCode 1782.统计点对的数目

给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成,其中 edges[i] [ui, vi] 表示 ui 和 vi 之间有一条无向边。同时给你一个代表查询的整数数组 queries 。 第 j 个查询的答案是满足如下条件的点对 (a, b) 的数…

U-Mail邮件系统-全面适配信创环境的国产邮件系统

在当今数字化时代,邮件系统作为企业、政府机构以及各类组织日常办公不可或缺的沟通工具,其安全性、稳定性以及自主可控性的重要性日益凸显。随着信创产业的蓬勃发展,国产邮件系统应运而生,成为保障信息安全、推动数字化转型的关键…

【LeetCode 热题 100】394. 字符串解码

Problem: 394. 字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有…

Activity之间互相发送数据

activity_send_data_req.xml<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_pare…

设计模式:访问者模式 Visitor

目录前言问题解决方案结构代码前言 访问者是一种行为设计模式&#xff0c;它能将算法与其所作用的对象隔离开来。 问题 假如你的团队开发了一款能够使用巨型图像中地理信息的应用程序。 图像中的每个节点既能代表复杂实体&#xff08;例如一座城市&#xff09;&#xff0c; 也…

OpenCV 学习探秘之四:从角点检测,SIFT/SURF/ORB特征提取,目标检测与识别,Haar级联分类人脸检测,再到机器学习等接口的全面实战应用与解析

书接上回&#xff0c;前面介绍了一些基本应用&#xff0c;本篇则着重介绍一些比较复杂的应用。 附&#xff1a;本文所用例子中使用的Opencv库OpenCV4.5.4版本编译好的库 五、特征提取与描述 5.1 角点检测&#xff1a;Harris 角点和 Shi-Tomasi 角点 5.1.1 Harris 角点检测&a…

《秋招在即!Redis数据类型面试题解析》

博客主页&#xff1a;天天困啊系列专栏&#xff1a;面试题关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Redis中常见的基础数据结构总共五种&#xff1a;这五种类型分别为String&#xff…

政务网站内容检测系统对错敏信息有什么作用

政务网站内容检测系统在错敏信息管理中发挥着重要作用&#xff0c;能够有效提升政府网站的信息安全性与合规性。以下从错敏信息的作用及蚁巡政务信息巡查系统的功能特点两方面进行说明。一、政务网站内容检测系统对错敏信息的作用1、实时监测与识别内容检测系统通过智能化技术对…

Tower of Hanoi 汉诺塔

题目描述The Tower of Hanoi game consists of three stacks (left, middle and right) and n round disks of different sizes. Initially, the left stack has all the disks, in increasing order of size from top to bottom. The goal is to move all the disks to the r…