A-A+

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

2022-08-05 23:00:19 问答库 阅读 173 次

问题详情

有如下类声明:
class XA{
int x;
public:
XA(int U)}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
解析:在派生类的构造函数声明中,一般格式为:
派生类名(参数总表):基类名(参数总表),对象成员名(参数表)
XB继承XA,基类XA的构造函数带有参数,所以必须给XA的构造函数的形参赋值,同时也可以为数据成员Y赋值。

考点:声明