填空题
在下列的程序的横线处填上适当的语句,使该程序的输出为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;
}
【正确答案】
1、cout<<Base::a
【答案解析】[解析] 此题考查的是基类和派生类的构造函数。派生类构造函数的执行顺序;首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。此题要求结果是输出12,分析题目:首先调用基类的构造函数,然后是调用子对象的构造函数,横线处要求输出基类成员a的值,填入cout<<Base::a即可。