10、借助虚方法使得基类引用调用派生类的方法需要满足的条件不包括()。A.派生类的方法和基类的方法具有相同的方法签名和返回类型;B.基类的方法必须使用virtual声明为虚方法;C.派生类的方法需要使用override标注为覆写方法;D.派生类的方法和基类的方法具有相同的功能。

题目

10、借助虚方法使得基类引用调用派生类的方法需要满足的条件不包括()。

A.派生类的方法和基类的方法具有相同的方法签名和返回类型;

B.基类的方法必须使用virtual声明为虚方法;

C.派生类的方法需要使用override标注为覆写方法;

D.派生类的方法和基类的方法具有相同的功能。


相似考题
更多“10、借助虚方法使得基类引用调用派生类的方法需要满足的条件不包括()。”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:C

  • 第2题:

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

    A) 无需任何条件

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

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

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

    A.

    B.

    C.

    D.


    正确答案:A

  • 第3题:

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

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

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

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

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


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

  • 第4题:

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

    A.设置虚基类的目的是为了消除二义性

    B.虚基类的构造函数在非虚基类之后调用

    C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

    D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数


    正确答案:B
    解析:虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数先于非虚基类的构造函数执行。

  • 第5题:

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

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

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

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

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


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

  • 第6题:

    怎样定义基类虚方法,并在派生类中重写基类虚方法?


    正确答案: 基类中虚方法的定义:
    V.irtual方法名([参数列表])
    {语句序列}
    派生类中重写方法的定义:
    O.verride方法名([参数列表])
    {语句序列}
    派生类中重写方法的名称、参数个数、类型以及返回值类型必须和基类中的虚拟方法一致虚拟方法不能声明为静态的。
    V.irtual不能和private一起使用,即虚拟方法不能是私有的。

  • 第7题:

    关于类的虚拟方法的说法中正确的是()。 

    • A、虚拟方法就是没有实现的方法
    • B、不能在派生类中调用基类的虚方法
    • C、可以在派生类中重载基类的虚方法
    • D、基类中不能调用自己的虚方法

    正确答案:C

  • 第8题:

    以下说法正确的是()。

    • A、虚方法必须在派生类中重写,抽象方法不需要重写
    • B、虚方法可以在派生类中重写,抽象方法必须重写
    • C、虚方法必须在派生类中重写,抽象方法必须重写
    • D、虚方法可以在派生类中重写,抽象方法也不需要重写

    正确答案:B

  • 第9题:

    问答题
    怎样定义基类虚方法,并在派生类中重写基类虚方法?

    正确答案: 基类中虚方法的定义:
    V.irtual方法名([参数列表])
    {语句序列}
    派生类中重写方法的定义:
    O.verride方法名([参数列表])
    {语句序列}
    派生类中重写方法的名称、参数个数、类型以及返回值类型必须和基类中的虚拟方法一致虚拟方法不能声明为静态的。
    V.irtual不能和private一起使用,即虚拟方法不能是私有的。
    解析: 暂无解析

  • 第10题:

    单选题
    关于类的虚拟方法的说法中正确的是()。
    A

    虚拟方法就是没有实现的方法

    B

    不能在派生类中调用基类的虚方法

    C

    可以在派生类中重载基类的虚方法

    D

    基类中不能调用自己的虚方法


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

  • 第11题:

    单选题
    以下说法正确的是()。
    A

    虚方法必须在派生类中重写,抽象方法不需要重写

    B

    虚方法可以在派生类中重写,抽象方法必须重写

    C

    虚方法必须在派生类中重写,抽象方法必须重写

    D

    虚方法可以在派生类中重写,抽象方法也不需要重写


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

  • 第12题:

    单选题
    下列关于虚方法的描述中,正确的是()
    A

     虚方法能在程序执行时动态确定要调用的方法,因此比非虚方法更灵活

    B

     在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符

    C

     在重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符

    D

     在重写基类的虚方法时,需要同时带上virtual和override修饰符


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

  • 第13题:

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

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

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

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

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


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

  • 第14题:

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

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

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

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

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


    正确答案:C

  • 第15题:

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

    A.设置虚基类的目的是为了消除二义性

    B.虚基类的构造函数在非虚基类之后调用

    C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

    D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调,用派生类的构造函数


    正确答案:B
    解析: 虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选于非虚基类的构造函数执行。

  • 第16题:

    多态性指的是

    A.以任何方式调用一个虚函数

    B.以任何方式调用一个纯虚函数

    C.借助于指向对象的基类指针或引用调用一个虚函数

    D.借助于指向对象的基类指针或引用调用一个纯虚函数


    正确答案:C

  • 第17题:

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

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

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

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

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


    正确答案:B

  • 第18题:

    在派生类中可以通过“基类名.方法名()”的方式来调用基类中的方法。


    正确答案:正确

  • 第19题:

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

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

    正确答案:B

  • 第20题:

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

    派生类自己的构造函数

    B

    虚基类的构造函数

    C

    非虚基类的构造函数

    D

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


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

  • 第21题:

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

    无需任何条件

    B

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

    C

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

    D

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


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

  • 第22题:

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

    基类的成员函数

    B

    派生类的成员函数

    C

    不确定

    D

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


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

  • 第23题:

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

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

    B

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

    C

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

    D

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


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

  • 第24题:

    判断题
    在派生类中可以通过“基类名.方法名()”的方式来调用基类中的方法。
    A

    B


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