关于类的虚拟方法的说法中正确的是()。 A、虚拟方法就是没有实现的方法B、不能在派生类中调用基类的虚方法C、可以在派生类中重载基类的虚方法D、基类中不能调用自己的虚方法

题目

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

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

相似考题
更多“关于类的虚拟方法的说法中正确的是()。 A、虚拟方法就是没有实现的方法B、不能在派生类中调用基类的虚方法C、可以在派生类中重载基类的虚方法D、基类中不能调用自己的虚方法”相关问题
  • 第1题:

    下列有关继承和派生的叙述中,正确的是

    A.派生类不能访问基类的保护成员

    B.作为虚基类的类不能被实例化

    C.派生类应当向基类的构造函数传递参数

    D.虚函数必须在派生类中重新实现


    正确答案:C
    解析:本题考查的知识点是:继承和派生。无论使用哪种继承方式,派生类中的成员都不能访问基类中的私有成员,而可以访问基类中的公有成员和保护成员,因此选项A) 不正确。在C++中,只有抽象类不能被实例化,而虚基类不一定非得是抽象类,所以选项B) 不正确。在派生类中可以重新定义从基类继承下来的虚函数,也可以不重新定义,因此选项D) 不正确。故本题应该选择C。

  • 第2题:

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

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

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

    C.声明“classB:virtualpublicA”说明类B为虚基类

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


    正确答案:C
    C。【解析】本题针对虚基类的定义及特点考查。虚基类的声明为“class<类名>:virtual<继承方式><基类名>”,即本题的A为虚基类。

  • 第3题:

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

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

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

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

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


    正确答案:C

  • 第4题:

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

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

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

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

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


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

  • 第5题:

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

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

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

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

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


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

  • 第6题:

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

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

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

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

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


    正确答案:B

  • 第7题:

    下列关于派生类构造函数和析构函数的说法中,错误的是( )。

    A.派生类的构造函数会隐含调用基类的构造函数

    B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数

    C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

    D.在撤销派生类对象时,先调用基类的析构函数,再调用派生类的析构函数


    正确答案:D

  • 第8题:

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


    正确答案:正确

  • 第9题:

    下列关于继承说法中,哪个选项是正确的()

    • A、派生类可以继承多个基类的方法和属性。
    • B、派生类必须通过base关键字调用基类的构造函数
    • C、继承最主要的优点是提高代码性能
    • D、继承是指派生类可以获取其基类特征的能力。

    正确答案:D

  • 第10题:

    单选题
    下列关于继承说法中,哪个选项是正确的()
    A

    派生类可以继承多个基类的方法和属性。

    B

    派生类必须通过base关键字调用基类的构造函数

    C

    继承最主要的优点是提高代码性能

    D

    继承是指派生类可以获取其基类特征的能力。


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

  • 第11题:

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

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

    B

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

    C

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

    D

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


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

  • 第12题:

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

    B


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

  • 第13题:

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

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

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

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

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


    正确答案:C

  • 第14题:

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

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

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

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

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


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

  • 第15题:

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

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

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

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

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


    正确答案:C
    解析:虚基类主要解决在多重继承时,基类可能被多次继承的问题,虚基类提供了一个基类给派生类。class B:virtual public:A中很明显B继承了虚基类A,所以选项c)错误。

  • 第16题:

    下列有关继承和派生的叙述中,正确的是( )。

    A.派生类不彘访问基类的保护成员

    B.作为虚基类的类不能被实例化

    C.派生类应当向基类的构造函数传递参数

    D.虚函数必须在派生类中重新实现


    正确答案:C
    派生类可以访问基类的保护成员,而不能访问基类的私有成员。作为虚基类的类可以被实例化。虚函数如果没有派生类中重新实现,那么仍然使用基类的成员函数。

  • 第17题:

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

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

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

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

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


    正确答案:B

  • 第18题:

    下面关于继承和派生的叙述中,正确的是( )。

    A.作为虚基类的类不能被实例化

    B.派生类不能访问基类中的保护成员

    C.虚函数必须在派生类中重新实现

    D.派生类向基类的构造函数传递参数


    正确答案:A

  • 第19题:

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


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

  • 第20题:

    以下说法正确的是()。

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

    正确答案:B

  • 第21题:

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

    • A、 虚方法能在程序执行时动态确定要调用的方法,因此比非虚方法更灵活
    • B、 在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符
    • C、 在重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符
    • D、 在重写基类的虚方法时,需要同时带上virtual和override修饰符

    正确答案:A

  • 第22题:

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

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

  • 第23题:

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

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

    B

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

    C

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

    D

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


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