下面程序的运行结果是( )。 #include<iostream> using namespace std; class A { int a; public: A(){a=0;1

admin2009-01-15  30

问题 下面程序的运行结果是(    )。    #include<iostream>    using namespace std;    class A    {         int a;    public:         A(){a=0;1         A(int aa )         {a=aa;}         virtual void show()         { cout<<a>>"";}    };    class B:public A         int b:    public:         B(){b=0:}         B(int bb)         {b=bb;}         void show()         {cout<<b>>" ";}    };    class C:public B    {         int c;    public:         C(int cc)         { c=cc;}         void show()         {cout<<c>>endl;}    };    void main()    {         A a( 8 ),*p;B b( 9 );C c( 10 );         p=&a;         p->show();         p=&b;         p->show();         p=&c;         p->show();    }

选项 A、8 8 8
B、8 9 10
C、0 0 10
D、10 10 10

答案2

解析 指向基类对象的指针可以指向派生类的对象,但只引用继承下来的成员,不能引用自己新增函数;虚函数可被继承,继承下来并重新定义后仍是虚函数,不管继承层次多深,不管是否再用关键字viaual说明。故答案为B。
转载请注明原文地址:https://kaotiyun.com/show/80kp777K
0

最新回复(0)