下面程序的运算结果是( )。 #include<iostream> using namespace std; class A { public: virtual void fun()=0; }

admin2009-01-15  30

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

答案4

解析 语句A a,*p;用抽象类说明了一个对象,这是不允许的。若把其改为 A*p ;则程序运行结果为D。
转载请注明原文地址:https://jikaoti.com/ti/azd0FFFM
0

最新回复(0)