C++中,如果希望有一个公共基类只声明一个函数接口,在该公共基类不进行定义,而是在派生类才重新定义;重新定义时,不同的派生类重新定义不同的功能,则这种情况下,最好使用C++的纯虚函数和派生类。(最后面有源代码下载)
1.1纯虚函数的特点和作用
a1 在基类声明一批公共的函数接口(在函数声明的分号前赋值=0),不进行定义,而在不同的派生类才重新进行定义;(当然,如果需要,也可以在公共基类中进行定义)
a2 包含纯虚函数的类不能创建对象或者实例化。(可以声明抽象类的指针或者引用,但是基类的指针只能指向派生类,不能指向基类本身,否则编译出错!!!引用也是一样,只能引用派生类,不能引用基类。)
1.2纯虚函数声明(抽象类声明)
纯虚函数通常是通过定义抽象基类ABC(Abstract Base Class)进行声明,下面是一个典型的纯虚函数类声明。
qabcclass.h头文件
class QABCClass
{
public:
QABCClass();
virtual ~QABCClass(){}
virtual void pureVirtureFunction1() const=0; //纯虚函数。在该类中,可以进行定义,也可以不进行定义
};
qabcclass.cpp源文件
#include "qabcclass.h"
#include <QObject>
#include <QDebug>
Q