多态性
多态性分类
多态性分为编译时多态性和运行时多态性。
编译时多态性:
一个源程序经过编译、连接,成为可执行程序的过程是把可执行代码连编到一起的过程。其中,在运行之前就完成的联编称为静态连编,即编译时多态性。
优点是:函数调用速度快、效率高。
静态多样性主要包括:重载和模板
重载主要是函数名相同,其他的可以不同,所以,调用某一函数时,就是通过返回类型、参数类型、参数个数等来区分,以便找出这个函数。
模板:模板一般都是定义在头文件中,有函数模板、类模板。使用template<typename T1,typenameT2,…,typename Tn>,然后用定义类和函数的方式来定义即可。
模板注意:
需要在成员函数定义之前进行模板声明;
在成员函数名前缀上“类名<类型参数>::”;
运行时多态性:
动态联编是指系统在运行时实现某一动作。使用这种联编方式,直到程序运行时才知道调用哪一个函数。
优点是:提供了更好的灵活性、问题的抽象性和程序的易维护性。
运行时多态性主要包括:虚函数的实现。
含有虚函数的类称之为抽象类,抽象类不能直接创建对象,但是可以通过继承的方式,让其派生类创建对象,然后上溯到抽象的基类。