<七>理解多态
  xs9mrAcZVTZn 2023年11月02日 69 0
C++

理解多态
多种多样的形态(静态多态,动态多态)
静态多态(编译时期)

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:在基类中提供统一的虚函数接口,让派生类进行重写,然后就可以使用多态.

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   2024年05月01日   80   0   0 C++
  BYaHC1OPAeY4   2024年05月08日   58   0   0 C++
  yZdUbUDB8h5t   2024年05月05日   44   0   0 C++
  oXKBKZoQY2lx   2024年05月17日   59   0   0 C++
xs9mrAcZVTZn