问题 单项选择题

下面程序的运算结果是( )。
#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。

选择题
多项选择题