问题
填空题
在下列的程序的横线处填上适当的语句,使该程序的输出为12。 #include<iostream.h> using namespace std; class Base { public: int a,b; Base(int i){a=i;} }; class Derived:public Base { int a; public: Derived(int x):Base(x),b(x+1){}; void show() {______;//输出基类数据成员a的值。cout<<b<<endl; } }; void main() { Derived d(1); d.show(); return 0; }
答案
参考答案:cout<<Base::a
解析: 此题考查的是基类和派生类的构造函数。派生类构造函数的执行顺序;首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。此题要求结果是输出12,分析题目:首先调用基类的构造函数,然后是调用子对象的构造函数,横线处要求输出基类成员a的值,填入cout<<Base::a即可。