父类纯虚函数也可给出定义,它和非纯虚函数的区别就在于:纯虚函数要求之类必须重写,非纯虚函数不具强制性, 如下:
virtual void purevirtualFunc() = 0 方法子类必须重写,而void showGreeting() 子类不一定重写。
#include <iostream>
using std::cout;
using std::endl;
class B
{
private:
int a;
public:
B(){};
virtual ~B() = 0;
virtual void purevirtualFunc() = 0;
virtual void showGreeting(){ cout << "hello, i'm class B. ; ) " << endl; };
};
B::~B(){};
void B::purevirtualFunc()
{
cout << "pF in class B. ;) " << endl;
};
class D:public B
{
public:
D(){};
~D(){};
void purevirtualFunc(){ cout << "pF in class D. ;) " << endl; };
};
int main(int argc, char** argv)
{
B* pD = new D;
if(pD)
{
delete pD;
}
return 0;
}