多态和虚函数

2017-10-20  本文已影响0人  Felicia1993

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

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

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

动态多态的机制:

1.子类继承父类

2.类实现接口

动态绑定的条件:

1.必须是虚函数

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

总结:

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

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

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

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

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

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

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

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

易混淆的知识点
上一篇下一篇

猜你喜欢

热点阅读