恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

c++ --多态(虚函数)

  • 首页
  • 资讯中心
  • /
  • c++ --多态(虚函数)

相关资讯

SpringBoot校园二手交易平台实战:从数据库设计到并发下单部署全解析 2026/8/29 12:39:33
轻量级工业物联网平台实战:从设备接入到告警推送的完整方案 2026/8/29 12:39:33
Wand更新后补丁为何失效?Wand-Enhancer版本自适应设计:SearchHints与混淆符号动态解析完全指南 2026/8/29 12:39:33

最新资讯

Deep-Live-Cam 完整指南:1 张照片跑通实时换脸,普通电脑到底行不行?
Qt数据库编程实战:QSqlQuery核心机制与安全CRUD操作详解
Scrapling 爬虫全流程指南:从一条请求到整站抓取
美赛论文写作全攻略:从结构搭建到摘要撰写的实战技巧
牛客2019二轮模考复盘:OJ判题规则与算法题备考策略
晋升不奖励忙碌:工程师如何建立可验证的影响力证据链

今日推荐

云计算SPI三类服务模式是逐层抽象的关系:IaaS提供最底层的硬件资源,PaaS在IaaS基础上封装了开发运行环境,SaaS则进一步封装为可直接使用的软件
最新稳定版(Python 3.14):这是目前官方推荐的最新稳定版本。作为最后一个采用传统“3.x”命名的版本
etc目录下的profile.d文件目录设置环境变量和全局脚本shell

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

c++ --多态(虚函数)

发布时间:2026/8/29 12:44:33
c++ --多态(虚函数) 目录1. 虚函数2.纯虚函数3. 多态的工作原理3.1 这是基类指针指向派生类对象调用函数。3.2 用基类引用来指向派生类对象virtual告诉 C这个函数要支持“运行时多态”调用哪个版本要根据“实际对象类型”决定而不是只看“指针/引用的类型”。1. 虚函数虚函数是基类中的一个函数用virtual关键字声明。通过这种方式派生类可以重写这个函数确保在运行时根据实际对象的类型调用相应的版本。这种机制实现了动态绑定。#include iostream using namespace std; class Base { public: virtual void show() { cout Base class show function called. endl; } }; class Derived : public Base { public: void show() override { cout Derived class show function called. endl; } }; int main() { Base* b new Derived(); b-show(); // 调用派生类的 show() delete b; return 0; }具体解释Base* b: 声明一个指向Base类的指针b。此时b可以用来指向Base类型或任何派生自Base的类型的对象。new Derived(): 创建一个Derived类型的对象并返回指向该对象的指针。new运算符用于动态分配内存。赋值操作: 将Derived对象的指针赋值给b使得b指向这个具体的Derived对象。动态绑定的优势由于b是Base类型的指针但它指向的是Derived对象因此调用b上的虚函数时将会根据Derived的实现来执行。这就是动态绑定的核心优势让代码在运行时更加灵活。2.纯虚函数纯虚函数是在基类中声明的虚函数但没有提供实现。它通过在函数声明后加上 0来标识。这种函数要求派生类必须实现它否则派生类也会变成抽象类不能被实例化。#include iostream using namespace std; class AbstractBase { public: virtual void show() 0; // 纯虚函数 }; class ConcreteDerived : public AbstractBase { public: void show() override { cout ConcreteDerived class show function called. endl; } }; int main() { ConcreteDerived d; d.show(); // 调用具体派生类的 show() // AbstractBase ab; // 错误无法实例化抽象类 return 0; }3. 多态的工作原理C 中的多态确实是通过继承和虚函数实现的。当一个类派生自基类时可以重写基类中的虚函数这样在运行时根据对象的实际类型来调用相应的函数。虚函数: 在基类中声明为virtual的函数允许在派生类中进行重写。基类指针/引用: 可以指向派生类对象调用虚函数时会根据实际对象的类型来决定调用哪个版本的函数。3.1 这是基类指针指向派生类对象调用函数。#include iostream using namespace std; class Base { public: virtual void show() { cout Base class show function called. endl; } }; class Derived : public Base { public: void show() override { cout Derived class show function called. endl; } }; int main() { Base* b; // 基类指针 Derived d; // 派生类对象 b d; // 指向派生类对象 b-show(); // 调用派生类的 show() return 0; }3.2 用基类引用来指向派生类对象#include iostream using namespace std; class Base { public: virtual void show() { cout Base class show function called. endl; } }; class Derived : public Base { public: void show() override { cout Derived class show function called. endl; } }; int main() { Derived d; // 创建派生类对象 Base b d; // 基类引用指向派生类对象 b.show(); // 调用派生类的 show() return 0; }

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号