当前位置: 首页 > news >正文

C++虚函数

C++虚函数

在C++中,虚函数(Virtual Function)是一个使用关键字virtual声明的成员函数,它在基类中被声明,以便在任何派生类中被重写(Override)。使用虚函数的目的是实现多态性——一种允许使用基类指针或引用来调用派生类方法的能力。

基本概念

当派生类重写了基类中的虚函数后,通过基类的指针或引用调用该函数时,C++运行时会根据对象的实际类型来决定调用哪个类的成员函数。这种机制称为“动态绑定”或“晚期绑定”。相反,没有使用虚函数的情况下,函数的调用会在编译时决定,称为“静态绑定”或“早期绑定”。

示例

#include <iostream>
#include <string>using namespace std;
/*
虚函数virtual:在父类中声明,允许派生类重写该函数,实现多态。
override:在子类中重写虚函数,在子类中更具体的实现函数功能。只在子类中使用。类中有虚函数,通常要把析构函数也写成虚的。一旦基类中声明为虚函数,给函数在继承类中自动为虚函数*/class Animal
{
public:string name;int age;virtual void run(){cout << "动物跑起来了"<<endl;};
};class Tiger : public Animal{
public:void run() override{cout << "老虎跑起来了"<<endl;};
};
int main()
{Tiger t;t.run();   //调用的是子类中的cout << "Hello World!" << endl;return 0;
}
class Base {
public:virtual void show() {cout << "Base class show" << endl;}
};class Derived : public Base {
public:void show() override {cout << "Derived class show" << endl;}
};

在这个示例中,Base类有一个虚函数show,而Derived类重写了这个函数。如果你有一个指向Derived对象的Base类指针,并调用show函数,将会执行Derived类的show函数。

http://www.lryc.cn/news/300308.html

相关文章:

  • MySQL数据库基础(二):MySQL数据库介绍
  • 常用文件命令
  • 在屏蔽任何FRP环境下从零开始搭建安全的FRP内网穿透服务
  • OpenGL-ES 学习(1)---- AlphaBlend
  • Python 函数的学习笔记
  • 详解 Redis 实现数据去重
  • FreeRTOS 延迟中断处理
  • 计网体系结构
  • linux系统zabbix工具监控web页面
  • VMware虚拟机网络配置
  • 代码随想录算法训练营DAY18 | 二叉树 (5)
  • 企业微信自动推送机器人的应用与价值
  • Matplotlib plt.plot:从入门到精通,只需一篇文章!
  • Linux中sigaction函数和SIGCHLD信号的使用
  • 【MySQL】操作库 —— 表的操作 -- 详解
  • ZigBee学习——在官方例程实现组网
  • ES实战--wildcard正则匹配exists过滤字段是否存在
  • C++学习:二分查找
  • 语言与科技创新(大语言模型对科技创新的影响)
  • 【C语言】简单贪吃蛇实现保姆级教学!!!
  • rtt设备io框架面向对象学习-uart设备
  • Innodb下修改事务工作流程(buffer pool、redo log、undolog)
  • redis为什么使用跳跃表而不是树
  • 【matalab】基于Octave的信号处理与滤波分析案例
  • Elasticsearch:特定领域的生成式 AI - 预训练、微调和 RAG
  • HarmonyOS—UI 开发性能提升的推荐方法
  • 84 CTF夺旗-PHP弱类型异或取反序列化RCE
  • Duilib List 控件学习
  • 详细了解Node.js的配置与使用!
  • OpenCV 移动最小二乘图像变形