news 2026/4/25 0:32:00

#c++多态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
#c++多态

虚函数


定义:在基类中使用virtual关键字声明的函数,允许在派生类中重写;

虚函数是在 C++ 基类中用 virtual 关键字声明的成员函数,目的是:允许子类重写(Override)该函数后,通过基类指针 / 引用调用时,自动执行子类的重写版本,而非基类版本

简单来说,虚函数实现了 “一个接口,多种实现

没有虚函数:基类指针指向子类对象时,调用的是基类的函数(静态绑定);

有虚函数:基类指针指向子类对象时,调用的是子类的函数(动态绑定 / 晚绑定)。

演示不用虚函数时的问题,理解为什么需要虚函数
语法格式:
virtual返回值类型函数名(参数列表){
函数体
}
,虚函数的作用:
动态绑定:通过基类指针或引用调用派生类的重写函数,实现运行时多态;
虚函数的注意事项:
派生类中的虚函数:在派生类中重写虚函数时,virtual关键字可省略,但仍为虚函数;
重写规则:必须遵循函数重写的规则,即函数名、参数列表、返回值类型必须相同

不用虚函数时的问题,理解为什么需要虚函数

#include <iostream> using namespace std; // 基类:动物 class Animal { public: // 普通函数(非虚函数) void make_sound() { cout << "通用的动物叫声" << endl; } }; // 子类:猫 class Cat : public Animal { public: // 重写make_sound,但无虚函数加持 void make_sound() { cout << "喵喵喵" << endl; } }; // 子类:狗 class Dog : public
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:29:48

AI元人文:给预印本平台的两封信——人机书写

AI元人文&#xff1a;给预印本平台的两封信——人机书写Re: 哲学社会科学预印本平台——您的论文未通过审核发件人&#xff1a;"李湖北 "收件人&#xff1a;yuyin时 间&#xff1a;2026-01-09 18:04:49其实&#xff0c;我研究预料到了&#xff0c;在四个月前&#…

作者头像 李华
网站建设 2026/4/23 13:05:55

MR2A08A-4Mb 8位I/O并行接口MRAM

在需要高速读写与数据永久保存的工业、汽车及高可靠性系统中&#xff0c;存储器的选择至关重要。MR2A08A-4Mb磁阻随机存取存储器&#xff08;MRAM&#xff09;凭借其SRAM兼容的性能、真正的非易失特性以及无限的读写耐久性&#xff0c;成为替代传统Flash、SRAM或电池备份SRAM&a…

作者头像 李华
网站建设 2026/4/21 14:53:30

Thinkphp-Laravel微信小程序 的个人身体健康饮食推荐系统 _184bw

目录项目开发技术介绍PHP核心代码部分展示系统结论系统概述核心功能技术架构创新点应用场景源码获取/同行可拿货,招校园代理项目开发技术介绍 本系统后端采用 PHP 语言搭配Thinkphp或者 Laravel 框架&#xff0c;PHP 语法简洁且功能强大&#xff0c;Laravel 或者Thinkphp框架能…

作者头像 李华
网站建设 2026/4/19 5:50:15

CLIP图文匹配微调实战

&#x1f493; 博客主页&#xff1a;借口的CSDN主页 ⏩ 文章专栏&#xff1a;《热点资讯》 CLIP图文匹配微调实战&#xff1a;从理论到垂直领域落地目录CLIP图文匹配微调实战&#xff1a;从理论到垂直领域落地 引言&#xff1a;为何CLIP微调是图文理解的“关键一跃” CLIP微调的…

作者头像 李华