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

虚函数和纯虚函数是 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.kler.cn/a/377955.html

相关文章:

  • centos7 kafka高可用集群安装及测试
  • 【每日一题】LeetCode - 三数之和
  • 如何让网页中的图片不可下载,让文字不可选中/复制
  • 一篇文章理解CSS垂直布局方法
  • 基于STM32+华为云IOT设计的大棚育苗管理系统
  • Java毕业设计-基于微信小程序的校园二手物品交易系统的实现(V2.0)
  • 【算法笔记】位运算算法原理深度剖析
  • 单向函数、单向陷门函数、困难问题
  • PHP的 CSRF、XSS 攻击和防范
  • promise的catch放在then前面的场景
  • OpenGL入门003——使用Factory设计模式简化渲染流程
  • 从零开始的c++之旅——继承
  • SMTP协议,即简单邮件传输协议
  • 20241031 Apache2修改日志里面的时间格式
  • SQL Server 2008 R2 详细安装教程及错误解决教程
  • 数据结构-链表【chapter1】【c语言版】
  • Darknet 连接教程
  • 安全性测试
  • sql server复制一张表(表结构或表数据)SQL语句整理
  • stl_stack/queue
  • 基于SSM+小程序的计算机实验室排课与查询管理系统(实验室2)
  • Golang | Leetcode Golang题解之第526题优美的排列
  • 无人机维护保养、部件修理更换技术详解
  • uniapp:启动界面关闭时长控制
  • RGA DEMO 下部
  • 数据结构(8.7_1)——外部排序