纯虚函数就是没有函数体的虚函数。包含纯虚函数的类就称为抽象类。下面的类A就是一个抽象类:
class A
{
private:
int a;
public:
virtual void Print()=0;
};
Print就是纯虚函数。纯虚函数的写法就是在函数声明后面加“=0”,不写函数体。所以纯虚函数实际是不存在的,引入纯虚函数是为了便于实现多态。
抽象类不能生成独立的对象。例如上面定义了class A后,下面的语句编译就会出错:
A a;
A *p=new A;
独立的抽象类的对象不存在,但是被被包含在派生类对象中的抽象类的对象,是可以存在的。
在一些程序中,基类只是个抽象形式,并不需要具体操作的时候,就可以把基类设置为抽象类。