A-A+

有如下类声明: class XA { int x; public: XA(int n){x=

2022-08-05 22:40:24 问答库 阅读 172 次

问题详情

有如下类声明: class XA { int x; public: XA(int n){x=n;} }; class XB:public XA { int y; public: XB(int a,int b); }; 在构造函数XB的下列定义中,正确的是
A.XB::XB(int a,int b):x(a),y(b){}
B.XB::XB(int a,int b):XA(a),y(b){}
C.XB::XB(int a,int b):x(a),XB(b){}
D.XB::XB(int a,int b):XA(a),XB(b){}

参考答案

正确答案:B
解析:派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中新增的成员初始化。格式为:派生类名(构造函数形参表):基类构造函数(形参表)。

考点:声明