问题
单项选择题
有如下程序: #include<iostream> using namespace std; class Base{ int x; public: Base(int n=0):x(n){cout<<n;} int getX( )const{return x;} }; class Derived:public Base{ int y; public: Derived(int m,int n):y(m),Base(n){tout<<m;} Derived(int m):y(m){cout<<m;} }; int main( ){ Derived dl(3),d2(5,7); return 0; } 程序的输出结果是
A.375
B.357
C.0375
D.0357
答案
参考答案:C
解析: 对象在创建时,先调用基类的构造函数,然后调用派生类的构造函数。在调用基类的构造函数时,如果没有给基类的构造函数形参赋值,则基类的构造函数使用带默认值的参数,所以d1(3)打印03;如果给基类的构造函数形参赋有初值,则使用实参值,故d2(5,7)打印75。