问题
单项选择题
有如下程序:
#include<iostream>
using namespace std;
class Base
int x;
public:
Base(int n=0):x(n)cout<<n;
int getX( )constreturn 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。