阅读目录
前言
运行期多态
编译期多态
运行期多态与编译期多态优缺点分析
运行期多态优点
运行期多态缺点
编译期多态缺点
关于显式接口与隐式接口
前言
今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分。在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态。在本文中,我们将了解:
1、什么是运行期多态
2、什么是编译期多态
3、它们的优缺点在哪
运行期多态
运行期多态的设计思想要归结到类继承体系的设计上去。对于有相关功能的对象集合,我们总希望能够抽象出它们共有的功能集合,在基类中将这些功能声明为虚接口(虚函数),然后由子类继承基类去重写这些虚接口,以实现子类特有的具体功能。典型地我们会举下面这个例子:
class Animal
{
public :
virtual void shout() = 0;
};
class Dog :public Animal
{
public:
virtual void shout(){
cout << "汪汪!"<<endl; }
};
class Cat :public Animal
{
public:
virtual void shout(){
cout << "喵喵~"<<endl; }
};
class Bird : public Animal
{
public