多态和虚函数

多态可以分为静态多态和动态多态

静态多态:函数重载,泛型编程,编译器在编译期间内完成的,编译器根据函数实参的类型可推断出调用哪个函数

动态多态:虚函数实现并给于类继承来表现

动态多态的机制:

1.子类继承父类

2.类实现接口

动态绑定的条件:

1.必须是虚函数

2.通过基类类型的引用或者指针调用

总结:

1.派生类重写基类的虚函数实现多态,要求函数名、参数列表、返回值完全相同

2.基类中定义了虚函数,在派生类中该函数始终保持虚函数的特性

3.只有类的成员函数才能定义虚函数,静态成员函数不能定义虚函数

4.如果在类外定义虚函数,只能在声明函数时加上virtual关键字,定义时不用加

5.构造函数不能定义为虚函数,

6.不要在构造函数和析构函数中调用虚函数,在构造函数和析构函数中,对象是不完整的,可能会出现未定义的行为

7.最好将基类的析构函数声明为虚函数。

8.虚表是所有类对象实例共用的


易混淆的知识点
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多态(1)静态多态与动态多态 什么是多态 从字面上理解就是多种形态的意思。而多态一词最初源自希腊语,其含义便是“多...
    kingZXY2009阅读 2,372评论 0 2
  • 继承和多态 1. 继承的优缺点 优点:(1)子类可以灵活地改变父类中的已有方法;(2)能够最大限度的实现代码重用。...
    MinoyJet阅读 684评论 0 0
  • C++虚函数 C++虚函数是多态性实现的重要方式,当某个虚函数通过指针或者引用调用时,编译器产生的代码直到运行时才...
    小白将阅读 1,764评论 4 19
  • 在2015腾讯全球合作伙伴大会「互联网+微信」的分论坛上,微信官方公开了微信用户数据。 60% 微信用户是年轻人,...
    咔哧咔哧的分色阅读 2,527评论 6 51
  • 听天气预报说晴天,于是上了五点半的闹铃,结果七点半才起,其间两个小时发生了什么,实属不知…不过出门后,一抬头: ...
    礼拜五兰阅读 395评论 21 7