问题
单项选择题
有如下程序:
#include <iostream>
using namespace std;
class A
public:
A(int i)X=i;
void dispa( )cout<<x<<',';
private:
int x;
;
class B:public A
public:
B(int i):A(i+10)x=i;
void dispb( )dispa( );cout<<x<<endl;
private:
int x;
;
int main( )
B b(2);
b.dispb( );
return 0;
程序的输出结果是 A) 10,2
B) 12,10
C) 12,2
D) 2,2
答案
参考答案:C
解析: 派生类的构造函数定义的一般格式为:
派生类名(参数总表):基类名(参数表)
{派生类新增数据成员的初始化语句}
在生成对象b时,就自动给基类构造函数传递实参10+i,所以dispa( )打印结果为12,dispb( )打印结果为2。