问答题 [说明] 下面代码实现类A、B、C、D的继承定义和应用。仔细阅读[代码5-1],在{{U}} (n) {{/U}}处写出正确的运行结果。 [代码5-1] #include<iostream.h> class A { public: int a; A (int v1): a(v1) {} //构造函数 void disp ( ) { cout<<"a in class A="<<a<<endl; } }; class B: virtual public A { public: int b; B (int v1,int v2): A(v1),b v2) {} //构造函数 void disp ( ) { cout<<"a in class B="<<a<<endl cout<<"b in class B="<<b<<endl; } }; class C: virtual public A { public: int c; C (int v1,int v2): A(v1) ,c(v2) {} //构造函数 void disp ( ) { cout<<"a in class C="<<a<<endl; cout<<"c in class C="<<c<<endl; } }; class D: public B, public C { public: int d; D (int v1,int v2,int v3,int v4 ): A(v1) ,B(v1,v2) ,C(v1,v3),d(v4) {} //构造函数 void disp ( ) { cout<<"a="<<a<<endl; cout<<"b="<< b<<endl; cout<<"c="<<c<<endl; cout<<"d="<<d<<endl; } }; void main( ) { D demo (10,20,30,40); demo.disp ( ); } [运行结果] a={{U}} (1) {{/U}} b={{U}} (2) {{/U}} c={{U}} (3) {{/U}} d={{U}} (4) {{/U}}
【正确答案】
【答案解析】(1)10 (2)20 (3)30 (4)40 [解析] 本题考查考生对C++语言中Class定义中继承关系的理解与掌握程度。考生如果理解了A、B、C、D间的继承关系,并不需要过多的推算,就能得出结果。