C++继承预习

C++实验报告四(继承与派生实验) 编写一个程序实现某小型公司的人员信息管理系统。该公司雇员(Employee)包括经理(Manager),技术人员(Technician)、销售员(Salesman)和销售部经理(SalesManager)。要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪并显示全部信息。程序要对所有人员有提升级别的功能。为简单起见,所有人员的初始级别均为1,然后进行升级,经理升为4级,技术人员和销售部经理升为3级,销售员仍为1级。月薪计算办法是 : 经理拿固定月薪8000元, 技术人员按每小时100元领取月薪,销售员按 阅读详情

一、C++类的3种继承方式,

分别是public继承,protected继承,private继承。

最常用的还是public继承。class默认的是private继承,它的member如果没写权限也是默认

private。struct则相反,默认的是public继承。

二、继承的构造函数与析构函数调用顺序

1、构造函数:创建子类时先调用基类的构造函数然后再调用自己的构造函数

2、析构函数:子类是调用自身的析构函数再调用基类的析构函数。

基类的析构函数必须设置为虚的,而作为最终子类则可以是虚的也可以不是虚的,因为没有其他类继承于它不会影响最终功能。但又不是所有类的析构函数都设置为虚的比较好,因为存在虚函数的类实例化时会额外添加一个虚表指针,浪费内存性能。

三、虚继承

1、什么是虚继承?

虚拟继承(Virtual Inheritance),解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。

2、虚继承解决了什么问题?

  解决了二义性问题,也节省了内存,避免了数据不一致的问题。

3、虚继承的语法是?

在派生类继承基类时(即在声明派生类的时候),加上一个virtual关键词则为虚拟继承.

class 派生类名:virtual 继承方式  基类名

{

。。。。。。

}

class 派生类: virtual 基类1,virtual 基类2,...,virtual 基类n

{

...//派生类成员声明

};

说明:在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后的基类起作用。声明了虚基类之后,虚基类在进一步派生过程中始终和派生类一起,维护同一个基类子对象的拷贝。

4、执行顺序及优先级

首先执行虚基类的构造函数,多个虚基类的构造函数按照被继承的顺序构造;

执行基类的构造函数,多个基类的构造函数按照被继承的顺序构造;

执行成员对象的构造函数,多个成员对象的构造函数按照申明的顺序构造;

执行派生类自己的构造函数;

析构以与构造相反的顺序执行;

从虚基类直接或间接派生的派生类中的构造函数的成员初始化列表中都要列出对虚基类构造函数的调用。但只有用于建立对象的最派生类的构造函数调用虚基类的构造函数,而该派生类的所有基类中列出的对虚基类的构造函数的调用在执行中被忽略,从而保证对虚基类子对象只初始化一次。

优先级:

在一个成员初始化列表中同时出现对虚基类和非虚基类构造函数的调用时,虚基类的构造函数先于非虚基类的构造函数执行。


c++快速入门【一小时速通版】(适合预习了解、复习备忘) 目的:速通一遍C++,熟悉基本用法,不求深入说明:学习自用,根据以下视频整理,大家可以参考学习。参考资料:【B站 这可能是史上最快学习C++的课程,期末考前复习冲刺的宝典】【w3cschool C++教程】【菜鸟教程|C++教程】 阅读详情

相关推荐

C++语言程序设计 项目七

一、实验目的 l 1、理解继承的含义,掌握派生类的定义方法和实现。 l 2、理解公有继承下基类成员在派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员。 l 3、理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员。 l 4、理解虚基类在类的继承层次中的作用。 二、准备内容 1、实验课前需预习实验内容,并做好实验设计。 2、复习视频及课上所讲授的C++中类的继承与派生的C++基本知识。 三、实验内容 设计并完成项目七:慕课

apple_62552936的博客 575

C++之继承(预习)

定义明确:将用于继承的类称为父类,也叫基类,用于为继承提供源头。从父类继承出来的类称为子类,也可称为派生类。一个子类(或派生类)可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。C++提供继承的目的是为了在不同的类型实体之间提取共性,提高代码利用率,并且可以灵活地对基类根据实际的使用场景进行改造设计。单继承 class <子类名>...

vivien1997的博客 242

字节Android面试预习(1):||一面

注:以下资料都是我在网上搜刮来了。 背景 我本科做过几个android开发的项目,硕士阶段一直在用c++,工作也想找C++的,奈何字节android hc多,就投了下。过了简历约了面试。最近就要好好复习了; 我现在java基本都快忘光了。 1.单例模式 ...

CoomCon的博客 390

C++学习之-----C++继承预习

1.单继承:        单继承是最简单的继承方式,其标准的定义方式为:                    class   <子类名>:<继承方式>   <父类名>                    {                        <子类新定义成员>                    };        其中“:”是继...

Mao1253的博客 246

在ZYNQMP上点亮800x480 LCD屏:从framebuffer到DRM框架的完整驱动移植实战

本文详细介绍了在ZYNQMP平台上点亮800x480 LCD屏的完整驱动移植实战,从framebuffer到DRM框架的技术实现。内容涵盖硬件配置、设备树设置、显示时序参数调试以及DRM驱动核心实现,帮助开发者快速掌握PetaLinux系统中的LCD驱动开发技巧。

weixin_33701294的博客 427

LDA主题模型简介及Python实现

一、LDA主题模型简介 LDA主题模型主要用于推测文档的主题分布,可以将文档集中每篇文档的主题以概率分布的形式给出根据主题进行主题聚类或文本分类。 LDA主题模型不关心文档中单词的顺序,通常使用词袋特征(bag-of-word feature)来代表文档。词袋模型介绍可以参考这篇文章:文本向量化表示——词袋模型 - 知乎 了解LDA模型,我们需要先了解LDA的生成模型,LDA认为一篇文章是怎么形成的呢? LDA模型认为主题可以由一个词汇...

weixin_41168304的博客 20万+

周学习进度(第一周)

本周进行小学期,每天下午进行小学期作业没有迟到早退 学习加固c++类的继承;链表指针的应用(使用循环链表);时间time函数应用; 问题:控制时间函数不懂,多线程不会应用。 下周:开始对Java相关预习 转载于:https://www.cnblogs.com/huiwuyan20/p/11146418.html...

weixin_30466039的博客 121

【项目立项管理、项目整合管理】30天通过软考高项-第二天

①项目或阶段的概述;②范围目标、范围的评估标准,证明达到完⼯标准的证据;③质量目标、项目和产品质量的评估标准、相关核实信息和实际里程碑交付日期以及偏差原因;④成本目标,包括可接受的成本区间、实际成本,产⽣任何偏差的原因等;⑤最终产品、服务或成果的确认信息的总结;⑥进度计划目标,包括成果是否实现项目预期效益:如果在项目结束时未能实现效益,则指出效益实现程度并预计未来实现情况;

weixin_42520723的博客 1000

C++中继承和派生详解(公有、私有、保护继承的区别)

继承和派生概述: 继承和派生是同一个过程从不同角的度看 保持已有类的特性而构造新类的过程称为继承。 在已有类的基础上新增自己的特性而产生新类的过程称为派生。 被继承的已有类称为基类(或父类)。 派生出的新类称为派生类(或子类)。 直接参与派生出某类的基类称为直接基类。 基类的基类甚至更高层的基类称为间接基类。   ...

one_super_doer的博客 1万+

傅里叶光学(1)

傅里叶光学,可以看作是通信理论中傅里叶变换等一系列数学思想以及系统理论与光学(主要是衍射光学)相结合的产物关于傅里叶光学的应用领域,本节介绍了成像,当然事实上不可能仅限于成像,经典的还如激光散斑的一些应用,干涉计量,还有傅里叶变换光谱学等等。最后总结一下,傅里叶光学我认为可以看做一个工具,对于任意的系统,它能给出一些数学思想与物理原理进行解释和分析,找出系统的扰动和响应的关系,或者说根据扰动和响应,来研究或者设计一个系统。

m0_53607446的博客 1675

WindowsServer2022蓝牙音频开启方法

为Windowsserver 2022 添加蓝牙音频驱动的方法和工具

thebestismin的专栏 2705

Qt专栏之C++预习篇(一)

Qt专栏之C++预习篇(一)C与C++的不同点编程范式的不同:规范的不同C++笔记速背点 用Qt写上位机软件真的超级方便,小小编在这边分享一些如何从零开始通过Qt来制作上位机软件。 我们预习回顾下Qt使用的编程语言,如果有C++基础的话可以稍稍看看,本文旨在C语言基础上阐述C++的不同点及基本概念速记 C与C++的不同点 编程范式的不同: C++ 同时支持全部的四种编程范式,分别是 : 面向过程 面向对象:(抽象、封装、继承、多态性) 面向对象的思想 是什么:客观事件是由各种各样的对象构成

Time to Forget 1019

实战:爬取某小程序的订单数据(解析小程序 API 参数)

本文以美团外卖小程序为例,详细分析了电商类小程序订单数据接口的技术实现与采集方法。首先通过抓包定位核心接口,解析其请求参数;重点破解了token验证机制与sign签名加密算法,通过逆向分析还原参数生成逻辑;最后基于Python实现了订单数据的自动化爬取与存储。文章强调数据采集需遵守法律合规性,提供应对反爬机制的策略,并指出了必须在获得合法授权的前提下使用这些技术。该研究为数据采集工程师提供了实用的技术参考,但必须严格遵循"最小必要"原则,确保不违反平台规则和用户隐私保护法规。

2503_91057718的博客 2317

实验五 继承与派生

1、利用继承性与派生类啦管理学生和教师档案。假设要管理下述几类人员的如下一些数据。 teacher(教师)类:姓名、性别、年龄、职称、担任课程; student(学生)类:姓名、性别、年龄、学号、系别; gradstudent(研究生)类:姓名、性别、年龄、学号、系别、导师。 要求实现学生和教师的信息输出。 2、编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求: (1)定义一个基类圆,至少含有...

菜鸡的优快云云存档 3760

基于ESP32的智能厨房控制系统开发

随着智能家居技术的发展,越来越多的家庭开始将传统的厨房设备进行智能化改造,以提高烹饪效率和生活质量。智能厨房控制系统是物联网(IoT)应用的重要组成部分,它将家居设备、传感器和网络结合起来,提供便捷的控制与监测功能,使厨房的烹饪过程更加智能、便捷和安全。基于ESP32的智能厨房控制系统不仅能够实现远程控制和监控,还能实现温度、湿度、烹饪状态的实时反馈,甚至具备智能化的推荐和自动化控制能力。ESP32是一款功能强大、集成度高的嵌入式开发平台,具有Wi-Fi和蓝牙双模通信能力,广泛应用于物联网设备的开发。

2201_76125393的博客 658

LabVIEW进行MQTT通信及数据解析

该文章介绍了LabVIEW的MQTT通信的开源VI控制,以及如果进行数据的解析,特别是一些需要注意的点

heda3的博客 4106

IT专业入门,高考假期预习指南(C++学习路线)

结合自己的实际,提供一份专属预习指南,帮助少年们为未来的IT学习和职业生涯打下坚实基础,开启一段挑战与机遇并存的暑期学习之旅吧!菜鸟教程提供了多种基础编程技术的教程,包, 括HTML、CSS、JavaScript、 C语言、C++、Java、Python、 数据库、Android 等各种基础编程教程,还有开发工具、wang站建设的教程。C++应用范围非常广,从游戏开发道流媒体, 从互联网金融道操作系统软件,以及当 下大热的人工智能,相对而C++的就业面也很广,现在也有越来越多的人选择C++

D1557329860的博客 902

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Qt专栏之C++预习篇(四)

Qt专栏之C++预习篇(四)C++的秘密1.C++对象内存模型2.泛型编程3.异常设计规范C++设计规范 用Qt写上位机软件真的超级方便,小小编在这边分享一些如何从零开始通过Qt来制作上位机软件。 我们预习回顾下Qt使用的编程语言,本文旨在阐述C++的设计规范以及补充速记点 C++的秘密 1.C++对象内存模型 对象模型的底层实现机制由于编译器的不同并未实现标准化。推荐一篇详细的好文章(篇幅较长,耐心看完,定有收获): C++对象模型:https://www.cnblogs.com/developin

Time to Forget 1121

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Qt专栏之C++预习篇(二)

Qt专栏之C++预习篇(二) C++的秘密1.继承时的重名遮蔽2.cin cout为内置对象3.内联函数inline知识速记扩展概念速记点 用Qt写上位机软件真的超级方便,小小编在这边分享一些如何从零开始通过Qt来制作上位机软件。 我们预习回顾下Qt使用的编程语言,本文旨在阐述C++的设计规范以及补充速记点 C++的秘密 1.继承时的重名遮蔽 ​ 基类成员和派生类成员的名字一样时会造成遮蔽,对于成员函数要引起注意,不管函数的参数如何,只要名字一样就会造成遮蔽。也就是说基类成员函数和派生类成员函数不会构成

Time to Forget 500

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C++类继承语法与内存分布

📝 C++类继承核心要点摘要(150字) 继承是C++面向对象三大特性之一,需掌握: 1️⃣ 语法:公有继承(class Dog:public Animal)表达"is-a"关系,基类private成员不可见但存在内存中,构造/析构顺序遵循"基→派"和"派→基"; 2️⃣ 内存:派生类对象=基类部分+新增部分,首地址相同(多态基础),可通过地址打印验证; 3️⃣ 设计:public继承用于接口继承(is-a),protected/private继

qq_72758246的博客 1052

C语言预习

什么是计算机程序?什么是编程语言?为什么需要编程语言?编程语言是用来干嘛的?举例一些编程语言,以及他们各自的特点? 计算机程序:也称为软件(英语:software),简称程序(英语:Program)是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。 编程语言:用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向...

LihuchengL的博客 450

郑莉老师c++第五版 复习笔记

c++ 复习笔记

qq_42863961的博客 1754

03《C++语言程序设计》郑莉,Bilibili课程笔记

数据的输入与输出(I/O流、预定义的插入符和提取符、简单的I\O格式控制、算法的基本控制结构-if\switch\for\while\break\continue\goto、变量的实现机制)信息的表示与存储(数字存储、进制转化、信息存储单位、二进制数的编码表示、定点数和浮点数、树的表示范围、非数值信息表示)->我是这样理解的哈,新生看不懂绪论,你不懂绪论不耽误你后面的学习,但绪论会跟你讲到知识背景、知识基知、知识整体概况。函数的定义与使用(函数的定义、函数的调用、函数的参数传递)->

weixin_53377464的博客 357

IT专业高考假期预习指南

对于有兴趣进入IT领域的新生,这个暑假确实是一个很好的开始点。以下是一份为新生定制的学习路线图,涵盖基础知识、编程技能、项目实践以及必备资源,希望能够帮助即将到来的大学生活及未来职业生涯奠定坚实基础。

与时俱进,一专多能。 1829

Java的基础入门预习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Java基础预习 前言 一、Java的基础安装及其环境配置 1、Java的安装 2、Java环境变量的配置 二、Java的三大特性 1、 2、 3、 三、Java程序简单的运行机制 四、Java简单的基础编程 前言 提示:这里可以添加本文要记录的大概内容: 随着学习的继续深入、以及未来计算机行业的发展要求,对Java的掌握运用变成了未来发展的必备知识,以下是关于Java的基础内容。 提示.

LisnmX的博客 514
上一篇: 深入讨论构造函数和运算符重载
下一篇: C++标准输入输出/C++异常机制/自定义模板
linuxwln
博客等级 码龄9年 30粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值