<七>理解多态
2023-02-18 16:33:45 时间
理解多态
多种多样的形态(静态多态,动态多态)
静态多态(编译时期)
1:函数重载
bool comparet(int ,int); bool compare(double,double);
compare(100,100)->compare_int_int();
compare(1.0,2.0)->comapre_double_double();
2:模板
template<typename T>
bool compare(T a,T b){
return a>b;
}
compare<int>(20,10); =>int 实例化compare(int x, int y); 发生在编译时期
compare<double>(100.0,50.0); 实例化compare(double x,double y);发生在编译器
动态多态(运行时期)
在继承结构中,基类指针(引用),指向派生类对象,通过该指针(引用)调用同名覆盖方法(虚函数)
基类指针指向哪个派生类对象,就会调用哪个派生类对象的同名覆盖方法,称为多态
pBase->show()多态底层是通过动态绑定来实现的 pbase->访问谁的vfptf->继续访问vftable->拿到最终的虚函数地址->完成调用
继承的好处?
1:可以做代码的复用
2:在基类中提供统一的虚函数接口,让派生类进行重写,然后就可以使用多态.
相关文章
- [PHP] 商品类型规格属性后台管理(代码流程备忘)
- [TCP/IP] TCP的传输连接管理
- [PHP] sys_get_temp_dir()和tempnam()函数报错与环境变量的配置问题
- [PHP] ubuntu下使用uuid扩展获取uuid
- [PHP] MIME邮件协议的multipart类型
- [MySQL] mysql的逻辑分层
- [TCP/IP] 传输层-ethereal 抓包分析TCP包
- [TCP/IP] 传输层-TCP和UDP的使用场景
- [TCP/IP] 网络层-简单查看路由表
- [TCP/IP] 网络层-抓包分析IP数据包首部
- [TCP/IP] 网络层-ARP协议
- [TCP/IP] 数据链路层-ethereal 抓包分析数据帧
- [PHP] 看博客学习观察者模式
- [MySQL] MVCC 多版本并发控制实现的事务
- [HTTP] tcp/ip详解 链路层 网络层 传输层 应用层
- [MySQL] mysql 的行级显式锁定和悲观锁
- [MySQL] mysql的事务隔离和幻读和死锁问题
- [PHP] 看博客学习插入排序
- [MySQL] mysql 的读写锁与并发控制
- [PHP] try catch在日常中的使用