下面程序的运行结果是( )。 #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
参考答案:B
解析: 指向基类对象的指针可以指向派生类的对象,但只引用继承下来的成员,不能引用自己新增函数;虚函数可被继承,继承下来并重新定义后仍是虚函数,不管继承层次多深,不管是否再用关键字viaual说明。故答案为B。