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

13、虚函数和纯虚函数的区别【高频】

虚函数:

  • 定义:虚函数就是 用virtual修饰的函数
  • 作用:当父类的虚函数被子类重写时,可以实现动态多态
  • 其他:
    • 父类出现虚函数时,子类并非一定要重写这个函数
#include <iostream>

class Base {
public:
    virtual void show() {
        std::cout << "Base class show function\n";
    }
};

class Derived : public Base {
public:
    void show() override {
        std::cout << "Derived class show function\n";
    }
};

int main() {
    Base* basePtr = new Derived();
    basePtr->show(); // 输出: Derived class show function
    delete basePtr;
    return 0;
}

纯虚函数:

  • 定义:在虚函数后面加一个=0和标记
  • 作用:纯虚函数本身没有内容,有纯虚函数的类叫 抽象类,抽象类是不能实例化的。所以 它相当于强制要求子类重写,否则子类也会成为抽象类。因此,纯虚函数为继承它的子类定义了一个统一的接口,让子类完成它的具体实现。
#include <iostream>

class Base {
public:
    virtual void show() = 0; // 纯虚函数
};

class Derived : public Base {
public:
    void show() override {
        std::cout << "Derived class show function\n";
    }
};

int main() {
    // Base baseObj; // 错误:不能实例化抽象类
    Base* basePtr = new Derived();
    basePtr->show(); // 输出: Derived class show function
    delete basePtr;
    return 0;
}
http://www.dtcms.com/a/41235.html

相关文章:

  • vscode+vue前端开发环境配置
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-model.py
  • C++ 二分法中向下取整与向上取整的区别与应用场景详解
  • DeepSeek在赋能客户服务方面,3大业务场景落地
  • 【cuda学习日记】5.2 共享内存数据分布
  • 哔哩哔哩IT私塾python爬虫视频教程中的项目文件
  • python绘制cox列线图及绘制指南
  • Halcon 学习之路 set_grayval 算子
  • c++stl——容器
  • C++Qt学习笔记——实现一个串口通信界面
  • Debian安装C语言环境
  • DeepSeek开源:FlashMLA深度解析:Hopper架构上的大模型推理革命
  • 重大更新!锂电池剩余寿命预测新增 CALCE 数据集
  • 硬件基础(3):三极管(3):三极管作为开关的时候为什么设置其工作在截止区和饱和区
  • 达梦数据库中jdbc接口的大批量插入数据的写法推荐
  • 评估自动驾驶(AD)策略性能的关键指标
  • 数字化转型数据自动采集统计分析发那科(FANUC)数据采集
  • Cuppa CMS v1.0 任意文件读取(CVE-2022-25401)
  • 过滤器 二、过滤器详解
  • VScode在windows10上使用clang-format
  • or-tools编译命令自用备注
  • Linux命令入门
  • 星座-从入门到精通
  • 18.6 大语言模型可解释性解密:打开AI黑箱的关键技术
  • 【补阙拾遗】排序之冒泡、插入、选择排序
  • 深入了解 SSH 及其相关协议
  • drupal如何支持多语言
  • Transformer 代码剖析2 - 模型训练 (pytorch实现)
  • 企业并购中SAP系统的三大数据转型挑战以及来如何应对?
  • 强化学习——A2C 和 PPO网络更新的比较