在创建派生类的对象时,由于派生类的对象包含了基类的数据成员,因此派生类的构造函数除初始化其自身定义的数据成员外,还必须对基类中的数据成员进行初始化。也就是说,派生类的构造函数要负责调用基类的构造函数。假设有类A,类B,类A是基类,类B继承自类A,那么在构造对象B b时,他们构造函数的调用顺序是()A.先A的构造函数,后B的构造函数B.先B的构造函数,后A的构造函数C.构造函数的调用顺序取决于具体的调用情况D.可以由用户自定义顺序

题目

在创建派生类的对象时,由于派生类的对象包含了基类的数据成员,因此派生类的构造函数除初始化其自身定义的数据成员外,还必须对基类中的数据成员进行初始化。也就是说,派生类的构造函数要负责调用基类的构造函数。假设有类A,类B,类A是基类,类B继承自类A,那么在构造对象B b时,他们构造函数的调用顺序是()

A.先A的构造函数,后B的构造函数

B.先B的构造函数,后A的构造函数

C.构造函数的调用顺序取决于具体的调用情况

D.可以由用户自定义顺序


相似考题
更多“在创建派生类的对象时,由于派生类的对象包含了基类的数据成员,因此派生类的构造函数除初始化其自身定义的数据成员外,还必须对基类中的数据成员进行初始化。也就是说,派生类的构造函数要负责调用基类的构造函数。假设有类A,类B,类A是基类,类B继承自类A,那么在构造对象B b时,他们构造函数的调用顺序是()”相关问题
  • 第1题:

    下列有关析构函数的调用顺序是( )。

    A.先执行基类的构造函数,然后执行派生类的析构函数

    B.先执行派生类的构造函数,然后执行基类的构造函数

    C.析构函数在派生类与基类中同时执行。

    D.只执行派生类的构造函数,不执行基类的构造函数


    正确答案:B
    解析:先执行派生类的构造函数,然后执行基类的构造函数。

  • 第2题:

    生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。

    A) 无需任何条件

    B) 基类中显示定义了构造函数

    C) 派生类中显式定义了构造函数

    D) 派生类构造函数明确调用了基类构造函数

    A.

    B.

    C.

    D.


    正确答案:A

  • 第3题:

    下列关于派生类的构造函数的说法中,哪个是错误的 ______。

    A.派生类不继承基类的构造函数和赋值运算

    B.派生类的构造函数可以调用基类的构造函数

    C.派生类的构造函数先于基类的构造函数执行

    D.在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象中的基类成员


    正确答案:C

  • 第4题:

    定义对象数组a[2]时,要调用2次构造函数;生成*p的对象时,要调用一次构造函数,故答案为3。

    A.使用虚基类可以消除由多继承产生的二义性

    B.构造派生类对象时,虚基类的构造函数只被调用一次

    C.声明“class B:virtual public A”说明类B为虚基类

    D.建立派生类对象时,首先调用虚基类的函数


    正确答案:C
    解析:使用虚基类的目的就是为了解决多继承路径下对基类成员的访问的二义性问题。一旦继承虚基类,那么在构造派生类对象时,虚基类构造函数就只调用一次。派生类对象调用构造函数和普通类对象一样,都是先调用基类构造函数,然后调用派生类构造函数。

  • 第5题:

    建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、C(派生类)构造函数),这3种构造函数的调用顺序为( )。

    A.abC

    B.aCb

    C.Cab

    D.Cba


    正确答案:A
    本题考查的是在继承中派生类的对象调用构造函数的顺序,应该是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自已的构造函数。

  • 第6题:

    派生类构造函数的成员初始化列表中,不能包含( )。

    A.基类的构造函数

    B.派生类中子对象的初始化

    C.基类中子对象的初始化

    D.派生类中一般数据成员的初始化


    正确答案:C
    解析: 构造函数的主要作用是对数据成员初始化。在设计派生类的构造函数中,不仅要考虑派生类所增加数据成员的初始化,还应考虑基类中构造函数的初始化。子对象是对象中的对象,子对象的初始化是在建立派生类时通过调用派生类构造函数来实现。所以派生类构造函数的任务包括3部分:对基类数据成员初始化:对子对象数据成员初始化;对派生类数据成员初始化。即本题选择选项C)。

  • 第7题:

    派生类的构造函数的成员初始化列表中,不能包含( )。

    A)基类的构造函数

    B)派生类中子对象的初始化

    C)基类中子对象的初始化

    D)派生类中一般数据成员的初始化


    正确答案:C

  • 第8题:

    多继承派生类构造函数构造对象时,()被最先调用。

    • A、派生类自己的构造函数
    • B、虚基类的构造函数
    • C、非虚基类的构造函数
    • D、派生类中子对象类的构造函数

    正确答案:B

  • 第9题:

    在创建派生类对象时,构造函数的执行顺序是()

    • A、对象成员构造函数―基类构造函数―派生类本身的构造函数
    • B、派生类本身的构造函数―基类构造函数―对象成员构造函数
    • C、基类构造函数―派生类本身的构造函数―对象成员构造函数
    • D、基类构造函数―对象成员构造函数―派生类本身的构造函数

    正确答案:D

  • 第10题:

    单选题
    多继承派生类构造函数构造对象时,()被最先调用。
    A

    派生类自己的构造函数

    B

    虚基类的构造函数

    C

    非虚基类的构造函数

    D

    派生类中子对象类的构造函数


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()
    A

    基类构造函数—>对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员

    B

    基类构造函数—>派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数

    C

    派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数—>基类构造函数

    D

    对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员—>基类构造函数


    正确答案: B
    解析: 暂无解析

  • 第12题:

    单选题
    派生类的构造函数的成员初始化列表中,不能包含(  )。
    A

    基类的构造函数

    B

    派生类中子对象的初始化

    C

    基类中子对象的初始化

    D

    派生类中一般数据成员的初始化


    正确答案: C
    解析:
    在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类的构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函。

  • 第13题:

    下列关于虚基类的描述中错误的是

    A.虚基类子对象的初始化由最派生类完成

    B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关

    C.设置虚基类的目的是消除二义性

    D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用


    正确答案:B
    解析:虚基类主要是为了消除在多重继承中的二义性问题。虚基类对象的初始化次数只于对象的多少有关,与类的层次结构是没有关系的。故本题正确答案为B。

  • 第14题:

    下列关于派生类的构造函数的叙述中,正确的是( )。

    A.派生类通过成员初设列表的方法调用基本类的构造函数,实现对基本类的初始化

    B.派生类构造函数的调用顺序先基类后子对象构造函数

    C.派生类构造函数的调用顺序先子对象构造函数后基类

    D.派生类构造函数是不能继承基类的


    正确答案:C

  • 第15题:

    派生类构造函数的调用顺序是先调用( )。

    A.派生类的构造函数

    B.基类的构造函数

    C.派生类的析构函数

    D.基类的析构函数


    正确答案:B
    解析:派生类在构造时,先调用基类的构造函数。

  • 第16题:

    生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。

    A.无需任何条件

    B.基类中显式定义了构造函数

    C.派生类中显式定义了构造函数

    D.派生类构造函数明确调用了基类构造函数


    正确答案:D
    D。【解析】派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。

  • 第17题:

    下列关于虚基类的描述中,错误的是( )。

    A.虚基类子对象的初始化由派生类完成

    B.虚基类子对象的初始化次数与虚基类下面的派生类的个数有关

    C.设置虚基类的目的是消除二义性

    D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数的调用


    正确答案:B
    解析:本题考核虚基类的初始化。从虚基类直接或间接派生的派生类的构造函数的成员初始化列表中都要列出对虚基类构造函数的调用,但只有用于建立对象的派生类的构造函数调用虚基类的构造函数,而该派生类的所有基类中列出的对虚基类的构造函数的调用在执行中被忽略,从而保证了对虚基类子对象只初始化一次。

  • 第18题:

    下列关于虚基类的描述中,错误的是( )。

    A.虚基类子对象的初始化由最派生类完成

    B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关

    C.设置虚基类的目的是消除二义性

    D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数的调用


    正确答案:B

  • 第19题:

    对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用__________的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容


    正确答案:
    基类 【解析】对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用基类的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。所以本题填:基类。

  • 第20题:

    下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()

    • A、基类构造函数—>对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员
    • B、基类构造函数—>派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数
    • C、派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数—>基类构造函数
    • D、对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员—>基类构造函数

    正确答案:A

  • 第21题:

    多重继承的派生类构造函数中执行基类构造函数的顺序取决于该派生类构造函数的成员初始化列表中出现基类初始化项的顺序。


    正确答案:错误

  • 第22题:

    判断题
    多重继承的派生类构造函数中执行基类构造函数的顺序取决于该派生类构造函数的成员初始化列表中出现基类初始化项的顺序。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第23题:

    单选题
    在创建派生类对象时,构造函数的执行顺序是()
    A

    对象成员构造函数―基类构造函数―派生类本身的构造函数

    B

    派生类本身的构造函数―基类构造函数―对象成员构造函数

    C

    基类构造函数―派生类本身的构造函数―对象成员构造函数

    D

    基类构造函数―对象成员构造函数―派生类本身的构造函数


    正确答案: C
    解析: 暂无解析

  • 第24题:

    单选题
    生成派生类对象时,派生类构造函数调用基类构造函数的条件是(  )。
    A

    无需任何条件

    B

    基类中显示定义了构造函数

    C

    派生类中显式定义了构造函数

    D

    派生类构造函数明确调用了基类构造函数


    正确答案: A
    解析:
    因为派生类从基类中继承,它含有基类中的数据成员和函数成员,所以当生成派生类对象时,能无条件的调用基类的构造函数。