问题 单项选择题

有如下类声明: 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 :x(,y({}

B.XB::XB(int a,int :XA(,y({}

C.XB::XB(int a,int :x(,XB({}

D.XB::XB(int a,int :XA(,XB({}

答案

参考答案:B

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

单项选择题
单项选择题