1、虚函数
1.1、虚函数的作用是什么?
- 虚函数并不是不被实现的函数。定义虚函数可以使一个基类的指针可以调用子类的这个函数。
- 纯虚函数才是不被实现的函数。
- 定义纯虚函数使是为了标准化一个接口,让规范集成这个类的程序员必须实现这个类。
对于虚函数的理解,可以认为这是一种“动态编译”机制,在编译时并不确定调用的是哪一个函数,而是在运行时确定。由于编译时不能确定函数是基类的函数还是派生类的函数,就称为虚函数。
1.2、纯虚函数的定义方法:
纯虚函数是在基类中声明的函数,它在基类中仅作声明,任何派生类都需要定义自己的实现方法。
virtual ReturnType Function()= 0;
例如:virtual void funtion1()=0;
引入纯虚函数的原因
- 方便使用多态特性
- 很多时候基类生成对象本省并不合理,而是用基类的派生类来实现一个具体的对象。将函数定义为纯虚函数之后,就必须要求派生类实现这个函数,从而实现多态特性。而含有纯虚函数的类为抽象类,它不能直接生成对象.
引入纯虚函数,可以使派生类继承基类的函数接口。
具有纯虚函数的类为抽象类。
1.3 抽象类的作用
抽象类的主要作用是将有关的操作作为结果接口组织在一个继承层次结构中,由它来为派生类提供一个公共的根,派生类将具体实现在其基类中作为接口的操作。所以派生类实际上刻画了一组子类的操作接口的通用语义ÿ