改错题:以下程序中有一处错误,请抄写有错误的语句并给出修改意见。
#include <iostream.h>
class Base{
public:virtual void fun()=0;
} ;
class Test:public Base{
public:virtual void fun(){cout<<"Test.fun="<<endl;}
} ;
void main(){
Base a;
Test *p;p=&a;
}
【正确答案】:
BASE A;错误。因为抽象类不能被实例化。
【题目解析】:
声明纯虚函数的一般格式如下:
virtual 函数类型 函数名(参数表)=0;
包含纯虚函数的类称为抽象类。因为抽象类中有尚未完成的函数定义,所以它不能实例化一个对象。