为什么要有纯虚函数
在定义基类时,有时只需要抽象出虚函数的原型,而无法定义其实现,因为其实现依赖于它的派生类。这是,可以把基类中的虚函数定义为纯虚函数。
格式:virtual <return type> FuncName(<ArgList>) = 0;
说明:
(1)定义纯虚函数时,其实现不能在类内定义,但可在类外或派生类中定义,通常在派生类中定义。
(2)虚函数名赋值为0,与函数体为空不同,在未实现该函数之前,不能调用它(函数体为空的函数可以被调用)。
(3)含有纯虚函数的类是抽象类,因为虚函数没有实现部分,不能产生对象。
(4)可以定义抽象类类型的指针(或引用),以便这种基类类型的指针指向其派生类的对象(或用基类类型的引用关联派生类对象)。调用派生类重定义的纯虚函数引发运行时的多态。