多态
多态就是不同继承类的对象,对同一行为所做出的不同反应,基类的指针指向或绑定到派生类的对象,使得基类的指针产生不同的表现方式
多态分为静态多态和动态多态
静态多态通过重载和模板编程实现,是在编译时就确定
动态多态则是通过虚函数实现,含有虚函数的类产生的对象会有一个虚指针,它指向该对象的虚函数表
当基类的指针指向派生类对象时,它就会遍历调用该对象虚函数表中的对应函数,从而实现多态,所以它的调用是运行时决定的
基类指针能够指向派生类对象,而派生类指针不能指向基类对象,这是因为派生类指针指向基类对象可能会访问到不属于基类对象的内存从而引起错误
纯虚函数
virtual void fun() = 0;
含有纯虚函数的类称为虚基类,不能实例化对象,纯虚函数必须要实现后才不是虚基类。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现