问题
单项选择题
下面程序的运算结果是( )。
#include<iostream>
using namespace std;
class A
public:
virtual void fun()=0;
;
class B:public A
public:
void fun()
cout<<"new file"<<" ";
;
class C:public A
public:
void fun()
cout<<"open file"<<" ";
;
void main()
A a, * p;
B b;C c;
p=&c;
p->fun();
p=&b;
A.new file open file
B.new file new file
C.编译出错
D.open file new file
答案
参考答案:C
解析: 语句A a,*p;用抽象类说明了一个对象,这是不允许的。若把其改为 A*p ;则程序运行结果为D。