多继承派生类建立对象时, 被最先调用。A.派生类自己的构造函数B.非虚基类的构造函数C.虚基类的构造函数D.派生类中子对象类的构造函数

题目

多继承派生类建立对象时, 被最先调用。

A.派生类自己的构造函数

B.非虚基类的构造函数

C.虚基类的构造函数

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


相似考题
更多“多继承派生类建立对象时, 被最先调用。”相关问题
  • 第1题:

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

    A.abc

    B.acb

    C.cab

    D.cba


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

  • 第2题:

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


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

  • 第3题:

    以下有关继承正确的是

    A: 构造函数和析构函数都能被继承

    B: 派生类是基类的组合

    C: 派生类对象除了能访问自己的成员外,不能访问基类中的所有成员

    D: 基类的公有成员一定能被派生类对象访问


    正确答案: D

  • 第4题:

    一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是______ 。

    A.每个派生类的构造函数都要为虚基类构造函数提供实参

    B.多继承时有可能出现对基类成员访问的二义性问题

    C.使用虚基类可以解决二义性问题并实现运行时的多态性

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


    正确答案:C
    解析:虚基类不能解决二义性的问题。

  • 第5题:

    一个类可以同时继承多个类,称为多继承。下列关于多个继承和虚基类的表述中,错误的是( )。

    A.每个派生类的构造函数都要为虚基类构造函数提供实参

    B.多继承时有可能出现对基类成员访问的二义性问题

    C.使用虚基类可以解决二义性问题并实现运行时的多态性

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


    正确答案:C

  • 第6题:

    当基类指针指向派生类对象时,会发生()

    • A、错误,基类指针不能指向派生类对象
    • B、基类指针可以指向派生类对象,但在此情况下只能调用基类自己定义的成员函数
    • C、基类指针可以调用派生类的成员函数
    • D、以上说法全部错误

    正确答案:B

  • 第7题:

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

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

    正确答案:B

  • 第8题:

    下列关于多继承的描述,错误的是()

    • A、一个派生类对象可以拥有多个直接或间接基类的成员
    • B、在多继承时不同的基类可以有同名成员
    • C、对于不同基类的同名成员,派生类对象访问它们时不会出现二义性
    • D、对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性

    正确答案:C

  • 第9题:

    在具有虚继承的类体系中,建立派生类对象时以什么顺序调用构造函数?


    正确答案:在具有虚继承的类体系中,建立派生类对象时先调用间接基类构造函数,再按照派生类定义时各个直接基类继承的顺序调用直接基类的构造函数,最后再对派生类对象自身构造函数。
    另外,C++为了保证虚基类构造函数只被建立对象的类执行一次,规定在创建对象的派生类构造函数中只调用虚基类的构造函数和进行(执行)自身的初始化。参数表中的其他调用被忽略,即直接基类的构造函数只调用系统自带的版本,或调用自定义版本但不对虚基类数据成员初始化。

  • 第10题:

    单选题
    下列关于多继承的描述,错误的是()
    A

    一个派生类对象可以拥有多个直接或间接基类的成员

    B

    在多继承时不同的基类可以有同名成员

    C

    对于不同基类的同名成员,派生类对象访问它们时不会出现二义性

    D

    对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性


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

  • 第11题:

    单选题
    下列有关类继承的叙述中,错误的是(  )。
    A

    继承可以实现软件复用

    B

    虚基类可以解决由多继承产生的二义性问题

    C

    派生类构造函数要负责调用基类的构造函数

    D

    派生类没有继承基类的私有成员


    正确答案: C
    解析:
    派生类继承了基类的全部数据成员(包括私有成员),只是基类的私有成员在派生类中是隐藏的,只能在基类内部访问。

  • 第12题:

    单选题
    当基类指针指向派生类对象时,利用基类指针调用派生类中与基类同名但被派生类重写后的成员函数时,调用的是()
    A

    基类的成员函数

    B

    派生类的成员函数

    C

    不确定

    D

    先调用基类的,再调用派生类的


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

  • 第13题:

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

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

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

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

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


    正确答案:C

  • 第14题:

    以下有关继承的叙述正确的是()。

    A、构造函数和析构函数都能被继承

    B、派生类是基类的组合

    C、派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员

    D、基类的公有成员一定能被派生类的对象访问


    参考答案:B

  • 第15题:

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

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

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

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

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


    正确答案:C

  • 第16题:

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

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

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

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

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


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

  • 第17题:

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


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

  • 第18题:

    关于私有继承,下列说法错误的是()。

    • A、基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问他们。
    • B、基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员不能直接访问他们。
    • C、基类的私有成员,派生类的成员和派生类的对象都无法访问。
    • D、派生类的对象无法访问基类的所有成员。

    正确答案:B

  • 第19题:

    在保护继承中,对于派生类的访问同于公有继承,而对于派生类的对象的访问同于私有继承。


    正确答案:正确

  • 第20题:

    当派生类指针指向基类对象时()

    • A、可以直接调用基类的成员函数
    • B、可以调用派生类对象的成员函数
    • C、必须强制将派生类指针转换成基类指针才能调用基类的成员函数
    • D、以上说法都不对

    正确答案:C

  • 第21题:

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

    派生类自己的构造函数

    B

    虚基类的构造函数

    C

    非虚基类的构造函数

    D

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


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

  • 第22题:

    单选题
    下列关于类的继承描述中,正确的是()
    A

    派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。

    B

    派生类也是基类,所以它们是等价的。

    C

    派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。

    D

    一个基类可以有多个派生类,一个派生类可以有多个基类。


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

  • 第23题:

    单选题
    当基类指针指向派生类对象时,会发生()
    A

    错误,基类指针不能指向派生类对象

    B

    基类指针可以指向派生类对象,但在此情况下只能调用基类自己定义的成员函数

    C

    基类指针可以调用派生类的成员函数

    D

    以上说法全部错误


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

  • 第24题:

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

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

    B

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

    C

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

    D

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


    正确答案: A
    解析:
    虚基类可以消除由多重继承产生的二义性。虚基类的说明格式是:class<类名>: virtual<继承方式> <基类名>,其中关键字virtual与继承方式放置顺序无关,但必须位于基类名之前,且virtual只对紧随其后的基类名起作用。对于本题来说,声明“class B: virtual public A”说明类A为虚基类。