(1)多态函数指的是在运行期绑定的函数,在c++中,仅有虚函数是在运行期进行绑定的,因此只有虚函数才具有真正意义上的多态。
补充一下:c++中的多态有以下三个前提条件:
a.必须存在一个继承体系结构。
b.继承体系结构中的一些类必须具有同名的virtual成员函数(virtual是关键字)
c.至少有一个基类类型的指针或基类类型的引用。这个指针或引用可用来对virtual成员函数进行调用。
(2)如果顶层函数的函数名相同,参数不同;或在一个类中,成员函数具有相同的函数名,参数不同;这两种情况我们称为重载,是编译期绑定。(注意是在同一个类中,或者是顶层函数)
(3)假定基类B有个成员函数,其派生类D也有一个具有相同函数签名的成员函数m,同时这个成员函数不是virtual函数,则称派生类的成员函数D::m覆盖了其 基类函数的成员函数B::m。若这个成员函数是virtual函数,就变成了第一种情况多态了。
(4)假定基类B拥有一个成员函数m,其派生类D也有一个成员函数m,如果派生类的同名成员函数与其基类的这个成员函数有不同的参数,则称D::m遮蔽(隐藏)了B: :m.