C++之​虚函数

虚函数是C++中的一个重要概念,它主要用于实现多态。在基类中声明一个虚函数,派生类可以重写这个函数,从而实现不同的功能。当基类指针或引用指向派生类对象时,调用虚函数会根据实际对象类型来调用相应的派生类中的函数实现,这就是多态的体现。

举例说明:

#include <iostream>
using namespace std;
​
// 基类
class Animal {
public:
    // 虚函数
    virtual void makeSound() {
        cout << "Animal makes a sound" << endl;
    }
};
​
// 派生类1
class Dog : public Animal {
public:
    // 重写虚函数
    void makeSound() override {
        cout << "Dog barks" << endl;
    }
};
​
// 派生类2
class Cat : public Animal {
public:
    // 重写虚函数
    void makeSound() override {
        cout << "Cat meows" << endl;
    }
};
​
int main() {
    // 基类指针指向派生类对象
    Animal* animalPtr = new Dog();
    animalPtr->makeSound(); // 输出:Dog barks
​
    delete animalPtr;
​
    // 基类引用指向派生类对象
    Animal& animalRef = *new Cat();
    animalRef.makeSound(); // 输出:Dog barks
​
    delete &animalRef;
    system("pause");
    return 0;
}
​

在这个例子中,基类Animal有一个虚函数makeSound(),派生类Dog和Cat分别重写了这个函数。当我们使用基类指针或引用指向派生类对象时,调用makeSound()会根据实际对象类型(即Dog或Cat)来调用相应的派生类中的函数实现。这就是虚函数实现多态的一个典型例子。

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

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

相关文章

哈希-力扣01两数之和

题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

阿里云倚天云服务器计算型c8y、通用型g8y、内存型r8y实例性能介绍及活动价格参考

计算型c8y、通用型g8y、内存型r8y是阿里云推出的基于ARM架构的新一代阿里自研倚天实例&#xff0c;采用阿里自研倚天710处理器&#xff0c;基于最新一代CIPU架构&#xff0c;通过芯片快速路径加速手段实现计算、存储、网络性能的大幅提升。其中计算型c8y实例网站应用、各种类型…

java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计

一、源码特点 JSP 体育馆运营管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统采用serlvetdaobean&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。 java Servlet体育馆运营管理系…

38.深入MySQL

深入MySQL 索引 索引是关系型数据库中用来提升查询性能最为重要的手段。关系型数据库中的索引就像一本书的目录&#xff0c;我们可以想象一下&#xff0c;如果要从一本书中找出某个知识点&#xff0c;但是这本书没有目录&#xff0c;这将是意见多么可怕的事情&#xff01;我们…

葡萄酒的独特国度智利

葡萄酒的独特国度智利 一、独特的智利葡萄酒 智利葡萄酒是在20世纪90年代以后才逐渐走向了世界&#xff0c;由于低税、口味独特等优点&#xff0c;深受大众喜爱。因为智利独待的气候其生产的葡萄别有风味&#xff0c;为其产出优质葡萄酒奠定了基础&#xff0c;再加上欧洲古老的…

C#如何将本地文件上传至阿里云OSS中

要想将文件上传至OSS&#xff0c;那么阿里云的AccessKeyId和AccessKeySecret必不可少 一.去哪找AccessKeyId和AccessKeySecret 进入阿里云工作台&#xff0c;点击右上角头像&#xff0c;选择AccessKey管理&#xff0c;就能看到ID了 但是Secret目前阿里云不支持查看了&#xf…

小H靶场笔记:DC-7

DC-7 January 8, 2024 4:11 PM Tags&#xff1a;Drupal 8&#xff1b;Drush Owner&#xff1a;只惠摸鱼 信息收集 使用arp-scan和nmap扫描C段存活主机&#xff0c;探测到靶机ip&#xff1a;192.168.199.137&#xff0c;且开放80、22端口 探测22、80开放端口的服务、版本、操…

Neo4j恢复

主要记录windows环境下从备份文件中恢复Neo4j&#xff0c; Linux环境同理 备份在上一篇中有介绍&#xff0c;参考: Neo4j备份-CSDN博客 误删数据 为了模拟误删除场景&#xff0c;我们查询Person&#xff0c;并模拟误操作将其进行删除&#xff1b; match(p:Person) return …

Linux的Inode号和日志服务管理

目录 一、Inode号 1.inode和block 2.查看inode信息 二、日志服务管理 1.日志的级别 2.日志的种类 3.日志的功能和日志文件的分类 4.日志的格式和分析工具 三、rsyslog日志处理系统 1、使用Rsyslog创建日志优点 2、Rsyslog配置文件解析 3.通过rsyslog将ssh服务的日志…

逆剑苍穹2_唯美仙侠手游3D剑舞乾坤手游_WIN学习手工端_无IP数限制_通用视频教程_安卓_GM物品充值后台

逆剑苍穹2_唯美仙侠手游3D剑舞乾坤手游_WIN学习手工端_无IP数限制_通用视频教程_安卓_GM物品充值后台 源码内置视频和文档搭建教程感兴趣可自行下载学习

凸优化—常见分式规划解决方法及代码实现

分式规划是凸优化中常见的问题,例如最大化能效等。这篇博客介绍了single-ratio 分式规划的二种常见方法。 1、Quadratic transform 2、 Dinkelbachs Transform 优化问题 一个简单的优化问题 如何使用上述二种方法来计算呢? Quadratic transform 代码复现 %% 方法2:Quadrat…

leecode | 字符串中的额外字符

题意&#xff1a;给定一个s字符串&#xff0c;和一个字典 字符串数组d&#xff0c;现在将字符串通过字典中的字符串数组把s切分&#xff0c;求最后剩下无法再切的字符串的长度思路&#xff1a;动态规划 倒着切 s[n-1] 切不了 那么问题转换成 n-1 找到找到一个j 使得 s[j, n-1]…

Hystrix服务熔断机制

熔断机制 熔断机制是应对雪崩效应的一种微服务链路保护机制&#xff0c;当系统链路中的某个微服务出现错误不可用或者响应时间太长的时候就会进行服务的降级&#xff0c;进而熔断该服务的调用&#xff0c;快速返回熔断的响应信息。当检测到该节点微服务调用正常后&#xff0c;…

Visual Studio 2022 AI Code 支持

1.先在 Log In | Codeium Free AI Code Completion & Chat 上注册一个用户 在Visual Stuido 中扩展中搜索 codeium 并安装 安装完成后登录即可。 注意国内可能存在网络问题无法使用这时建议使用代理进行登录。 地址如下&#xff1a; Sign Up | Codeium Free AI Code Co…

数组中元素的插入和查找算法探究

数组的查找 线性查找 概念 线性查找也叫顺序查找&#xff0c;这是最基本的一种查找方法&#xff0c;从给定的值中进行搜索&#xff0c;从一端开始逐一检查每个元素&#xff0c;直到找到所需元素的过程。 元素序列的排列可以有序&#xff0c;也可以无序。 代码实现 public cl…

1-06格式化输入和输出

一、概述 格式化输入和输出其实指的就是C语言标准函数库<stdio.h>中的&#xff1a; scanf函数&#xff0c;用于从键盘读取输入。printf函数&#xff0c;用于向屏幕输出信息。 它们是C语言当中使用非常非常频繁的两个函数&#xff0c;所以很重要。 这两个函数的基本使…

SAP 表TPALOG 查询请求号的查询记录

SE16N输入表 TPALOG &#xff0c;查看到如下界面

Linux下Redis6下载、安装和配置教程-2024年1月5日

Linux下Redis6下载、安装和配置教程-2024年1月5日 一、下载二、安装三、启动四、设置开机自启五、Redis的客户端1.Redis命令行客户端2.windows上的图形化桌面客户端 一、下载 1.Redis的官方下载&#xff1a;https://redis.io/download/ 2.网盘下载&#xff1a; 链接&#xff…

stm32---输入捕获实验实操(巨详细)

这次来分享上次没说完的输入捕获的知识点 实验中用到两个引脚&#xff0c;一个是通用定时器 TIM3 的通道 1&#xff0c;即 PA6&#xff0c;用于输出 PWM 信号&#xff0c;另一 个是高级控制定时器 TIM1 的通道 1&#xff0c;即 PA8&#xff0c;用于 PWM 输入捕获&#xff0c;实…

rpm数据库被破坏,无法使用yum

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 问题描述&#xff1a; 云服务器在安装了开源的HIDS插件后&#xff0c;发现安装了插件的服务器全部突然无法正常使用yum安装软件…