问题 填空题

有如下程序: #include<iostream> using namespace std class Base{ int b; public: Base(int i) {b=i;} Void disp ( ) {cout<<"Base:b="<<b<<’’; } }; class Base1:virtual public Base{ public: Base1(int i):Base(i){} }; class Base2:virtual public Base{ public: Base2(int i):Base(i){} }; class Derived:public Base2. public Base1{ int d; public: Derived(int i ,int j):Base1(j),Base2(j), 【12】 { d=i; } void disp() {cout<<"Derived:d="<<d<<’ ’;} }; int main() Derived objD(1,2);objD. disp() objD. Base::disp(); objD. Base1::disp() objD. Base2::disp(); return 0; } 请将程序补充完整,使程序在运行时输出: Derivd:d=1 Base:b=2 Base:b=2 Base:b=2

答案

参考答案:Base(j)

解析: 因为程序在运行时输出:Derivde:d=1 Base:b=2 Base:b=2 Base:b=2,而前两个Base:b=2 Base:b=2分别来自Base1(j),Base2(j),而在程序类的声明中,Base类也具有输出Base:b=2的功能。所以,程序中应补充的代码为Base(j)。

问答题
单项选择题