问题 单项选择题

有如下程序: #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。

单项选择题
问答题 简答题