#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;
}

改错题:以下程序中有一处错误,请抄写有错误的语句并给出修改意见。


#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;

包含纯虚函数的类称为抽象类。因为抽象类中有尚未完成的函数定义,所以它不能实例化一个对象。


Top