2.9C++多态

news2024/11/18 20:02:05

C++ 继承扩展

C++继承在实际开发中它可以帮助我们实现代码重用,减少代码冗余,提高代码的可维护性和可扩展性。

通过继承,我们可以从已有的类中派生出新的类,新的类可以继承父类的属性和方法,并且可以添加自己的属性和方法。

这样就能避免重复编写相同的代码,同时也可以保证代码的一致性和可靠性。

此外,C++继承还可以实现多态,多态可以使得不同的对象以相同的方式进行处理,这样可以大大提高代码的灵活性和可扩展性。

C++ 多态

C++多态是指在继承关系中,子类可以覆盖父类的方法,并且可以以多种形式进行访问,从而实现不同对象之间的相同操作,这样可以提高代码的灵活性和可扩展性。

多态主要通过虚函数实现,虚函数是在基类中声明的一个函数,它可以被派生类覆盖,派生类可以根据自己的需要重新实现这个函数。

当我们使用一个指向派生类对象的基类指针或引用调用这个函数时,会根据实际的对象类型来调用相应的函数,这就是多态。

我写个 demo:
在这里插入图片描述
在上述写的 demo 中,我定义了一个基类 Animal,它有一个虚函数 speak()。

然后派生出了 Dog 和 Cat 两个子类,并重写了 speak() 函数。

在主函数中,我定义了两个指向 Animal 对象的指针 pAnimal1 和 pAnimal2,分别指向 Dog 和 Cat 对象。

接着我通过这两个指针分别调用 speak() 函数。

由于 speak() 函数是虚函数,因此会根据实际的对象类型来调用相应的函数,输出狗旺旺叫和猫喵喵叫。

编译运行结果:
在这里插入图片描述
C++多态可以大大提高代码的灵活性和可扩展性,使得代码更加易于维护和扩展。但读者需要注意,虚函数会带来一定的性能开销,因此在性能要求比较高的场景中需要谨慎使用。

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

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

相关文章

selenium元素定位---ElementClickInterceptedException(元素点击交互异常)解决方法

目录 前言: 1、异常原因 2、解决方法: 前言: 当使用Selenium进行元素定位和交互时,可能会遇到ElementClickInterceptedException(元素点击交互异常)的异常。这通常是由于页面上存在其他元素或弹出窗口遮…

ROS学习之基础包创建的详细流程:包括rosnode, rostopic, rosrun,roslaunch等使用

0 引言 本文旨在学习ROS基础包的从零开始创建,包括如何创建一个发布消息节点,一个接收消息节点,还有如何使用roslaunch同时启动多个节点,如何编译ROS工程包等操作。 默认已在Ubuntu系统中安装ROS机器人系统,比如Ubun…

AOP--拦截器

AOP应用--拦截器Spring拦截器拦截器执行流程前缀的添加统一异常处理统一数据返回格式返回String类型 AOP应用–拦截器 AOP的作用:统一功能处理;我们将以三个内容作为学习的掌握点;而这三点也是我们非常迫切需要的 1:用户登录权限…

Windows系统分区大小

Microsoft Reserved(MSR)——保留分区——16MB左右 EFI System Partition(ESP)——系统分区——100MB左右 Recovery Partition(自起名字REP)——恢复分区——450MB左右 其他分区——剩余

对rabbitmq进行压测

添加rabbitmq依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactI…

C# PaddleOCR标注工具

基于以下开源项目改造的 https://gitee.com/BaoJianQiang/FastOCRLabel 效果 Demo下载

CMake使用gRPC(Protobuf) 的c++ demo

gRPC的命令参数里&#xff0c; 1. 如果要用pacakge&#xff0c;需要--proto_path的参数&#xff0c; 例如helloworld.proto的绝对路径是 /home/user/grpc_demo_ws/grpc_demo/hello_world/proto/helloworld.proto 在helloworld.proto里面的pacakge是 package grpc_demo.hello_w…

同步(通信原理)

同步原理&#xff1a; 在通信系统中&#xff0c;同步是指发送端和接收端在时间上保持一致&#xff0c;使得接收端能够正确地解析和还原发送端发送的信号。同步的原理可以根据具体的通信系统和协议来区分&#xff0c;下面是几种常见的同步原理&#xff1a; 1. 时钟同步&#x…

uniapp 配置chooseLocation微信小程序腾讯地图选点

uniapp 配置chooseLocation微信小程序腾讯地图选点 场景 在uniapp中使用地图选点 搜索功能&#xff0c;回显功能&#xff0c;移动选点功能 使用到的API是uni.chooseLocation 详细看一下都有哪些属性 latitude &#xff1a;目标地纬度 Number longitude &#xff1a;目标地经度…

论文阅读: (CVPR2023 SDT )基于书写者风格和字符风格解耦的手写文字生成及源码对应

目录 引言SDT整体结构介绍代码与论文对应搭建模型部分数据集部分 总结 引言 许久不认真看论文了&#xff0c;这不赶紧捡起来。这也是自己看的第一篇用到Transformer结构的CV论文。之所以选择这篇文章来看&#xff0c;是考虑到之前做过手写字体生成的项目。这个工作可以用来合成…

浅析基于物联网技术的校园能耗智慧监控平台的设计及应用

摘 要&#xff1a;为打造低碳绿色校园&#xff0c;营造良好的学习环境&#xff0c;针对目前校园建筑能耗大&#xff0c;特别是空调节能困难等问题&#xff0c;特采用物联网技术构建校园建筑能耗智慧监控平台。通过设计空调监控子系统&#xff0c;搭建空调监控模型实现了空调等智…

在 Jetpack Compose 中使用 Snackbar

Jetpack Compose 是 Android 的现代 UI 工具库&#xff0c;提供了丰富的组件和功能来构建漂亮、交互丰富的用户界面。在本文中&#xff0c;我们将学习如何在 Jetpack Compose 中使用 Snackbar 组件来显示临时消息或操作反馈。 什么是 Snackbar&#xff1f; Snackbar 是一种用于…

基于Layui实现管理页面

基于Layui实现的后台管理页面&#xff08;仅前端&#xff09; 注&#xff1a;这是博主在帮朋友实现的一个简单的系统前端框架&#xff08;无后端&#xff09;&#xff0c;跟大家分享出来&#xff0c;可以直接将对应菜单跟html文件链接起来&#xff0c;页面使用标签页方式存在&…

面试了一个前阿里P7,Java八股文与架构核心知识简直背得炉火纯青

前几天&#xff0c;跟个老朋友吃饭&#xff0c;他最近想跳槽去大厂&#xff0c;觉得压力很大&#xff0c;问我能不能分享些所谓的经验套路。 每次有这类请求&#xff0c;都觉得有些有趣&#xff0c;不知道你发现没有大家身边真的有很多人不知道怎么面试&#xff0c;也不知道怎…

赛效:如何将PDF文件免费转换成Word文档

1&#xff1a;在网页上打开wdashi&#xff0c;默认进入PDF转Word页面&#xff0c;点击中间的上传文件图标。 2&#xff1a;将PDF文件添加上去之后&#xff0c;点击右下角的“开始转换”。 3&#xff1a;稍等片刻转换成功后&#xff0c;点击绿色的“立即下载”按钮&#xff0c;将…

win10修改IP地址报错:出现一个意外情况,不能完成所有你在......

问题描述 在修改网卡适配器的时候出现一下报错&#xff1a;出现一个意外情况&#xff0c;不能完成你在设置中所要求的更改 问题原因 该问题是由于我之前卸载VMware导致注册表出现问题。 解决方法 解决办法为:修复注册表(下载一个CCleaner下载试用版即可&#xff08;https…

2. 查询至少连续三天下单的用户

文章目录 题目需求思路一实现一思路二实现二 题目需求 查询订单信息表(order_info)中 最少连续3天 下单的用户id&#xff0c;期望结果如下&#xff1a; user_id101 订单信息表&#xff1a;order_info order_id(订单id)user_id(用户id)create_date (下单日期)total_amount(订…

MySQL 数据表修复方法

MySQL表检查与修复 — check/repair指令 目录 MySQL表检查与修复 --- check/repair指令1. 指令详解2. 操作方法&#xff1a;命令提示符(cmd指令)操作方法SQLyog 操作方法&#xff08;推荐&#xff09; 本文主要讲check table和repair table指令&#xff1b; 1. 指令详解 在检…

如何把图片转文字?图片转文字方法分享!​

如何把图片转文字呢&#xff1f;在我们日常的工作或者生活当中&#xff0c;总会遇到需要将图片中的文字提取出来整理出文档&#xff0c;比如同事领导给你发的文件&#xff0c;或者在自己看到了喜欢书的段落句子&#xff0c;想要摘抄下来&#xff0c;这些都是可以用图片转文字来…

C++ Vector容器使用方法详解

Vector概述 C 标准库向量类是序列容器的类模板。 向量以线性排列方式存储给定类型的元素&#xff0c;并允许快速随机访问任何元素。 向量是需要力求保证访问性能时的首选序列容器。vector是种容器&#xff0c;类似数组一样&#xff0c;但它的size可以动态改变。vector的元素在内…