发布时间:2026/8/10 8:54:35
小学生学C++编程语法知识(什么是多态(Polymorphism)) C面向对象核心什么是多态Polymorphism——同一个指令不同对象表现不同对于小学生可以先记一句话多态就是同一个动作让不同的对象表现出不同的结果。例如我们说“动物叫”不同动物狗汪汪叫猫喵喵叫鸭子嘎嘎叫命令一样叫但是结果不同。这就是多态。一、C面向对象三大特点我们之前学习1. 封装把数据和操作放一起。例如class Student { private: int score; };保护数据。2. 继承子类拥有父类功能。例如class Dog:public Animal { };3. 多态同一个接口不同表现。例如Animal | | Dog Cat 叫()调用叫()结果狗汪汪 猫喵喵二、先看没有多态的问题我们写动物class Animal { public: void speak() { cout动物叫endl; } };狗class Dog:public Animal { };猫class Cat:public Animal { };现在Dog d; d.speak();输出动物叫但是我们希望汪汪怎么办三、让子类重新定义函数我们可以class Dog:public Animal { public: void speak() { cout汪汪endl; } };猫class Cat:public Animal { public: void speak() { cout喵喵endl; } };现在Dog d; d.speak();输出汪汪四、但是这还不是多态为什么看Dog d; Cat c; d.speak(); c.speak();编译器知道你是Dog。你是Cat。所以直接调用对应函数。这叫函数重定义隐藏不是多态。五、真正的多态需要什么C多态核心两个条件条件1父类有虚函数virtual条件2用父类指针或引用指向子类对象。六、虚函数实现多态完整代码#includeiostream using namespace std; class Animal { public: virtual void speak() { cout动物叫endl; } }; class Dog:public Animal { public: void speak() { cout汪汪endl; } }; class Cat:public Animal { public: void speak() { cout喵喵endl; } }; int main() { Animal* p; Dog dog; Cat cat; pdog; p-speak(); pcat; p-speak(); }输出汪汪 喵喵七、这里发生了什么重点来了。代码Animal* p;表示一个动物指针。然后pdog;虽然p类型Animal*但是实际指向Dog调用p-speak();C会问p真正指向谁发现Dog于是调用Dog::speak()后来pcat;现在p真正指向Cat于是调用Cat::speak()这就是一个父类指针根据实际对象不同调用不同函数。八、生活中的例子假设学校有老师 | --数学老师 | --英语老师学校系统只保存Teacher*上课teach();数学老师输出讲数学英语老师输出讲英语系统不用知道到底是哪种老师。只需要teacher-teach();这就是多态的价值。九、为什么需要多态假设动物园有100只动物如果不用多态你可能写if(typedog) { dog.speak(); } else if(typecat) { cat.speak(); }动物越来越多代码越来越复杂。有多态统一Animal* animals[100]; animals[i]-speak();每个动物自己决定怎么叫。十、多态的底层秘密虚函数表这是进阶知识。当类有virtual编译器会给对象增加虚函数表指针 vptr例如Dog对象---------------- | vptr | ---------------- | Dog数据 | ----------------vptr指向虚函数表 speak() --- Dog::speak()所以p-speak();程序通过vptr ↓ 虚函数表 ↓ 找到真正函数这叫动态绑定。十一、静态绑定和动态绑定这是考试常考。普通函数void speak()调用时编译阶段决定。叫静态绑定虚函数virtual void speak()运行时决定。叫动态绑定十二、多态和继承的关系多态不是单独存在的。通常继承 虚函数 父类指针 多态十三、为什么析构函数经常写virtual例如class Animal { public: virtual ~Animal() { } };为什么看Animal* pnew Dog; delete p;如果析构函数不是虚函数可能只调用Animal析构Dog自己的资源没有释放。如果virtual ~Animal()会Dog析构 ↓ Animal析构所以有继承关系的父类析构函数通常应该写成虚函数。十四、记忆口诀继承孩子拥有爸爸能力多态同一个命令 不同对象 不同结果C实现多态父类指针 子类对象 virtual函数 多态十五、最后总结一张图Animal | ---------------- | | Dog Cat Animal* p; pdog; p-speak(); ↓ 汪汪 pcat; p-speak(); ↓ 喵喵一句话总结继承解决“是不是一种”的问题组合解决“有没有”的问题多态解决“同一个动作不同对象怎么做不同事情”的问题。掌握多态以后C面向对象三大核心封装 → 继承 → 多态就完整串起来了。

相关新闻

2026/8/10 8:54:35

局域网文件共享传输工具绿色无广告

软件介绍 说到局域网传输工具,其实有好多好多可以选择,但每次我跟小伙伴聊这个话题,总有人跳出来推荐同一款软件,它的名字叫:LocalSend。这是一款在GitHub上开源免费的局域网传输工具,目前在GitHub上有83.…

2026/8/10 8:54:35

OpenRouter与Netlify集成:构建安全高效的AI模型访问网关

在构建现代 Web 应用时,我们常常需要集成 AI 能力来增强用户体验或实现智能化功能。然而,直接对接各大 AI 厂商的 API 往往面临诸多挑战:密钥管理分散、模型切换成本高、计费方式复杂,以及在国内网络环境下可能遇到的访问限制。Op…

2026/8/10 8:54:35

小学生学C++编程语法知识(什么是类的继承)

C面向对象核心:什么是类的继承? ——从“孩子继承父母”理解 C 继承机制 对于小学生,可以先记一句话: 继承,就是让一个新的类拥有另一个已有类的功能,并且可以增加自己新的功能。 就像现实生活&#xff1…

2026/8/10 9:59:42

强化学习实战:从马尔可夫决策过程到DQN算法实现与调参指南

1. 项目概述:从“试错”到“决策”的智能进化如果你对人工智能的理解还停留在“识别图片里的猫”或者“下棋战胜人类”,那么强化学习(Reinforcement Learning, RL)可能会刷新你的认知。它不满足于被动地分析数据,而是像…

2026/8/10 9:59:42

01 深度学习到底是什么:从机器学习到神经网络

前言 学完一套机器学习入门课程后,我们已经可以用线性回归预测连续数值,用逻辑回归、决策树或随机森林完成分类,也知道如何划分数据、训练模型和评估结果。 既然传统机器学习已经能够解决很多问题,为什么还要学习深度学习&#x…

2026/8/10 9:59:42

HTTP协议底层通信揭秘

当然, 机器间若想通过稀薄的空气传输数据, HTTP是做不到的。HTTP协议执行操作, 得借助一些更简单的抽象才行。实际上, 现代操作系统具备这样一个功能, 那就是可让不同程序在IP网络间, 靠TCP协议来有纯文本的网络会话。而HTTP协议恰好利用了此功能。也就是说, HTTP协议精确地描述…

2026/8/10 9:59:42

【AI加持下的Python编程实战2

【全新第二版《Learn AI- 》封面】写在前面全篇里, 这是全书头一处精华部分, 从全然零基础小白视角, 详细讲了在函数设计那里的用法, 诸如提示词正确写法, 基于AI工具的函数设计基础工作流程等, 虽说具体案例都没多大难度, 可当中方法要领都值得大伙反复去研读, 还得认真实践。…

2026/8/10 9:59:42

Python如何处理XML中的命名空间前缀

要将命名空间正确处理, 其一, 通过URI字典加上自定义前缀来开展查询;其二, 运用*通配符对命名空间予以忽略;其三, 对前缀进行注册以此规范输出;其四, 借助lxml保留原始前缀;其五, 通过正则作预处理把命名空间移除。倘若您于其中解…

2026/8/10 9:54:42

TVA-World具身智能可解释性框架与安全验证机制

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”或“TVA视觉智能体”)是依托Transformer架构与“因式智能体”理论构建的通用视觉技术框架。它融合深度强化学习(DRL)、卷积神经…

2026/8/9 0:01:56

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 5:09:58

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/10 0:04:00

# AI视频生成2026:多模态控制与工程化落地的技术跃迁

## AI视频生成2026:多模态控制与工程化落地的技术跃迁### 背景:从"抽卡"到"导演"的范式转移2024年,Sora的问世让AI视频生成首次进入公众视野,但彼时的技术被开发者戏称为"抽卡"——输入一段Prompt&…

2026/8/10 0:04:00

2026年五大AI编码CLI工具深度横评:从原理到实战选型指南

1. 项目概述:为什么我们需要对比AI编码CLI工具?如果你和我一样,每天有超过一半的时间是在终端里度过的,那么“效率”就是你最核心的追求。从最初的代码补全插件,到集成在IDE里的智能助手,再到如今能直接在命…

2026/8/7 9:44:18

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/7 19:03:32

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/9 15:24:19

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…