问题
填空题
#include<iostream.h>
class Bas
public:
~Bas()cout<<"Bas construct"<<endl;
virtual void f()=0;
;
class Dev:public Bas
public:
~Dev()cout<<"Bas construct"<<endl;
virtual void f()cout<<"Dev::f"<<endl;
;
void main()
Bas*a=new Bas();
Dev p;
a=&p;
a->f();
答案
参考答案:Bas*a=new Bas();抽象类不能被实例化,但可以声明指针或引用,所以不能用new,因为new产生临时对象。应改为Bas*a;。