有如下类声明: classXA{ intx: public: XA(intn){x=n;} }; classXB:publicXA{ inty; oublic: XB(inta,intb); }; 在构造函数XB的下列定义中,正确的是( )。A.XB::XB(inta,intb):x(a),y(b){}B.XB::XB(inta,intb):XA(a),y(b){}C.XB::XB(inta,intb):x(a),XB(b){}D.XB::XB(inta,intb):XA(a),XB(b){}

题目

有如下类声明: classXA{ intx: public: XA(intn){x=n;} }; classXB:publicXA{ inty; oublic: XB(inta,intb); }; 在构造函数XB的下列定义中,正确的是( )。

A.XB::XB(inta,intb):x(a),y(b){}

B.XB::XB(inta,intb):XA(a),y(b){}

C.XB::XB(inta,intb):x(a),XB(b){}

D.XB::XB(inta,intb):XA(a),XB(b){}


相似考题
参考答案和解析
正确答案:B
B。【解析】C++中派生类构造函数的一般语法规则为<派生类名>::<派生类名>(<参数表>):<基类1>(<参数表1>),…,<基类名n>(<参数表n>),<子对象l>(<子对象参数表1>,…<子对象m>(<子对象参数表m>){<派生类新增成的初始化语句>;}。
更多“有如下类声明: classXA{ intx: public: XA(intn){x=n;} }; classXB:publicXA{ inty; oublic ”相关问题
  • 第1题:

    有如下类声明:

    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赋值。

  • 第2题:

    有如下类声明: 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
    解析:此题考查的是派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化;然后对派生类中的新增成员初始化。格式:派生类名(构造函数形参表)基类构造函数(形参表)。

  • 第3题:

    有如下类声明: 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)i}

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


    正确答案:B
    解析:构造函数的定义过程中,初始化基类成员,只能通过调用基类构造函数,所以答案选择B。

  • 第4题:

    有如下类声明:

    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
    解析:本题考核派生类中构造函数的定义。C++中派生类构造函数的一般语法规则为:派生类名>::派生类名>(参数表>):基类名 1>(参数表 1),...基类名n>(参数表n>),子对象 1>(子对象参数表 1>),...子对象 m>(子对象参数表 m>){派生类新增成的初始化语句>;},对照上述表达只有B选项符合要求.

  • 第5题:

    有如下类声明: classXA( intX; public: XA(intn){x=n;} }; classXB:publicXA{ inty; public: XB(inta,intb); ]; 在构造函数XB的下列定义中,正确的是( )。

    A.XB::XB(inta,intb):x(a),y(b){)

    B.XB::XB(inta,intb):XA(a),y(b){)

    C.XB::XB(inta,intb):x(a),XB(b)(}

    D.XB::XB(inta,intb):XA(a),XB(b){)


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