今天看设计模式,其中突然间看到纯虚函数竟然被定义了,和之前看到的明显不对啊,之前记得是纯虚函数是不可以定义的,具体的定义实现只能到子类中去实现,在父类中只能声明。结果自己编程发现这是可以的,瞬间打破了自定曾经的知识结构,于是查找相关方面的知识发现:纯虚函数不是不可以定义,而是没有作用,对于含有纯虚函数的抽象类,不可以实例化对象,而是对于任何一个继承的子类来说,必须要在子类中对该纯虚函数进行定义,这又涉及到函数的覆盖问题,可以归属到那一类问题中。
#include <iostream>
using namespace std;class AbstractClass
{
public:
AbstractClass(){}
~AbstractClass(){}
virtual void f()=0;
};
void AbstractClass::f()
{
cout<<"Can't believe it! "<<endl;
}
class Class1:public AbstractClass
{
public:
Class1(){}