C++_18_多态
多态:
面向对象三大概念:封装、继承、多态!可想而知多态是何等的重要
多态的概念以及前提条件:
编译期绑定(静态联编):函数入口地址和函数名在编译期间绑定,即编译期间确定函数名和入口地址唯一对应
运行期绑定(动态联编):函数入口地址和函数名在编译期间不绑定,反而在运行程序时才根据需要再动态组合绑定
多态:就是要做到同一个函数名在调用的时候,可以根据需求随时绑定不同的入口地址,实现不同函数对应的效果!
直白理解就是函数名还是那一个,只不过在具体执行时候借助函数名绑定的指针(存放入口地址)存入不同的入口地址(不同的类的)
要想形成多态必须具备以下三个条件:
1、必须存在继承关系;
2、继承关系中必须有同名的虚函数;(函数类内定义前加 virtual)(虚函数存在的意义就是为实现多态,是以继承为基础才形成的概念)
3、存在基类类型的指针或引用,通过该指针或引用调用虚函数。
导致=====>>>》 基类指针或引用指向哪个(基类或者派生类的)虚函数,就执行哪个(基类或者派生类的)虚函数
顶层函数属于实现特定功能的函数,和类的概念有些区别,属于对象那个层次的函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!