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

虚函数和纯虚函数是 C++ 中实现多态性的关键概念

虚函数(Virtual Function)

  • 定义:虚函数是在基类中使用 virtual 关键字声明的函数,目的是允许派生类重写该函数。
  • 用途:通过虚函数,基类指针或引用可以调用派生类中重写的函数,从而实现动态多态性。
  • 实现:虚函数可以在基类中提供默认实现,派生类可以选择是否重写。
  • 语法示例
    class Base {
    public:virtual void show() {std::cout << "Base show" << std::endl;}
    };class Derived : public Base {
    public:void show() override { // 重写虚函数std::cout << "Derived show" << std::endl;}
    };
    

纯虚函数(Pure Virtual Function)

  • 定义:纯虚函数是基类中声明为 = 0 的虚函数,表示该函数没有实现,必须由派生类提供实现。
  • 用途:纯虚函数用于定义接口(抽象类),强制派生类实现特定的功能。
  • 实现:不能直接实例化包含纯虚函数的类。
  • 语法示例
    class AbstractBase {
    public:virtual void show() = 0; // 纯虚函数
    };class ConcreteDerived : public AbstractBase {
    public:void show() override { // 必须实现std::cout << "ConcreteDerived show" << std::endl;}
    };
    

总结

  • 虚函数:允许在基类中有实现,派生类可以选择重写。
  • 纯虚函数:没有实现,要求派生类必须重写,形成抽象类,不能被实例化。

这两者共同支持 C++ 的多态性,提供了灵活的对象设计和接口定义。

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

相关文章:

  • 计算机网络IP地址分类,子网掩码,子网划分复习资料
  • LINUX下使用SQLite查看.db数据库文件
  • 基于uniapp微信小程序的校园二手书交易系统
  • 性能测试中的操作系统参数优化
  • rabbitmq高级特性(2)TTL、死信/延迟队列、事务与消息分发
  • 了解一下,RN中怎么加载 threejs的
  • 笔记整理—linux驱动开发部分(1)驱动梗概
  • 金融领域中的敏感性分析和期权价值计算相关的操作
  • GraphQL系列 - 第1讲 GraphQL语法入门
  • 015:地理信息系统开发平台ArcGIS Engine10.2与ArcGIS SDK for the Microsoft .NET Framework安装教程
  • Android——显式/隐式Intent
  • 【鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式教程详解】
  • 一篇文章入门傅里叶变换
  • 基于python的语音识别与蓝牙通信的温控系统
  • Pandas Series学习
  • 为什么要探索太空?这对我们有什么好处?
  • uniapp开发【选择地址-省市区功能】,直接套用即可
  • 3个模型的交互式多模型IMM,基于EKF的目标跟踪实例(附MATLAB代码)
  • 利用游戏引擎的优势
  • 一致角色的视频且唇形同步中文配音和免费音效添加
  • Spring学习笔记_14——@Qualifier
  • 高级SQL技巧详解与实例
  • 实现PC端和安卓手机的局域网内文件共享
  • 腾讯云云开发深度解读:云数据库、云模板与AI生成引用的魅力
  • 预览 PDF 文档
  • Chromium 在WebContents中添加自定义数据c++
  • 【Apache Zookeeper】
  • 13.音乐管理系统(基于SpringBoot + Vue)
  • 如何从iconfont中获取字体图标并应用到微信小程序中去?
  • C语言中的位操作