问个关于纯虚函数、抽象类的问题
下面的这个程序:
#include <iostream>
using namespace std;
class common
{
public:
virtual void ok()=0;
void test()
{
cout<<"common::test()"<<endl;
}
};
class A:public common
{
public:
void ok()
{
cout<<"A::ok()"<<endl;
}
};
class B:public common
{
void ok()
{
cout<<"B::ok()"<<endl;
}
};
void main()
{
common *ptr;
ptr=new A();
ptr->ok();
ptr=new B();
ptr->ok();
}
运行结果:
A::ok()
B::ok()
如果我把纯虚函数virtual void ok()=0;改写成virtual void ok(){};程序的运行结果是一样的,那为什么非要写成纯虚函数呢,非要让它成为一个抽象类干什么呢???