c++ 虚函数和纯虚函数

C++基类中有三种函数声明,1 纯虚函数  pure virtual  2 虚函数 impure virtual  3. non-virtual 函数

声明纯虚函数: 为了让derived classes 只继承函数接口

声明虚函数:  让derived classes 继承该函数的接口和缺省实现。

声明non-virtual函数: 为了令derived classes 继承函数接口及一份强制性实现。 这个可以理解为,non-virtual函数的声明意味了不打算在派生类中有不同的行为,及不管派生类如何特异化,该函数行为保持不变。 

纯虚函数声明: virtual void fun1 () = 0;

虚函数声明:    virtual void fun1(); 

non-virtual声明: void fun1();

众所周知,包含纯虚函数的类为抽象类,不可以实例化。声明纯虚函数的作用是强制子类为该纯虚函数进行实现。及纯虚函数是接口继承,而虚函数是实现继承。对于虚函数,子类可以有自己的实现,也可以使用基类的实现。

在类设计时,根据具体的方法是否需要子类重新实现或者必须重新实现来声明不同类型的方法。

~~~~~
原文地址:https://www.cnblogs.com/missmzt/p/4693501.html