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

题目

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


相似考题
更多“怎样定义基类虚方法,并在派生类中重写基类虚方法?”相关问题
  • 第1题:

    在基类中有定义的纯虚函数,它要求在派生类中定义,而且基类不能用以说明对象,则该类为( )。

    A.虚基类

    B.抽象类

    C.虚函数类

    D.模板类


    正确答案:B
    解析:类中一旦有纯虚函数的定义那么这个类就再也不能创建此类的对象了,我们把这种类叫做抽象类。

  • 第2题:

    下面关于纯虚函数和抽象类的描述中, ______ 是错误的。

    A.纯虚函数是一种特殊的虚函数,它没有具体意义

    B.一个基类中的说明有纯虚函数,该基类的派生类一定不再是抽象类

    C.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出

    D.抽象类是指具有纯虚函数的类


    正确答案:B

  • 第3题:

    派生类中所定义的虚函数的【 】不影响对它的动态联编,即基类中已定义的虚函数,其同名函数放在派生类中的【 】,都可以实现运行时多态性。


    正确答案:访问属性 任何地方
    访问属性 任何地方

  • 第4题:

    一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函数又称__________。


    正确答案:
    纯虚函数 【解析】纯虚函数是在声明虚函数时被“初始化”为0的函数。纯虚函数没有函数体,只是函数的名而不具备函数的功能,只是在基类中预留了一个函数名,具体功能留给派生类根据需要去定义。

  • 第5题:

    下列各种类中,不能定义对象的类是()。

    • A、派生类
    • B、抽象类
    • C、嵌套类
    • D、虚基类

    正确答案:B

  • 第6题:

    基类中允许重写的属性和方法使用关键字()声明,而在派生类中使用关键字()定义重写的属性及方法。


    正确答案:Overridable;Overrides

  • 第7题:

    带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()。

    • A、与虚基类下面的派生类个数有关
    • B、多次
    • C、二次
    • D、一次

    正确答案:D

  • 第8题:

    单选题
    带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()。
    A

    与虚基类下面的派生类个数有关

    B

    多次

    C

    二次

    D

    一次


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

  • 第9题:

    单选题
    在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用()关键字。
    A

    override

    B

    new

    C

    static

    D

    virtual


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

  • 第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.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出


    正确答案:C

  • 第14题:

    是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

    A.虚析构函数

    B.构造函数

    C.纯虚函数

    D.静态成员函数


    正确答案:C

  • 第15题:

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

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

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

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

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


    正确答案:A

  • 第16题:

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

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

    正确答案:C

  • 第17题:

    当不同的类具有相同的间接基类时,()

    • A、 各派生类无法按继承路线产生自己的基类版本
    • B、为了建立惟一的间接基类版本,应该声明间接基类为虚基类
    • C、为了建立惟一的间接基类版本,应该声明派生类虚继承基类
    • D、一旦声明虚继承,基类的性质就改变了,不能再定义新的派生类

    正确答案:C

  • 第18题:

    以下说法正确的是()。

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

    正确答案:B

  • 第19题:

    “虚基类”是通过什么方式定义的?如果类A有派生类B、C,类A是类B虚基类,那它也一定是类C的虚基类吗?为什么?


    正确答案:虚基类是在声明派生类时,指定继承方式时声明的,声明虚基类的一般形式为:class派生类名:virtual继承方式 基类名若类A是类B和类C的虚基类,但不一定是类D的虚基类,原因在于“虚基类”中的“虚”不是基类本身的性质。而是派生类在继承过程中的特性。关键字virtual只是说明该派生类把基类当作虚基类继承,不能说明基类其他派生类继承基类的方式。

  • 第20题:

    填空题
    基类中允许重写的属性和方法使用关键字()声明,而在派生类中使用关键字()定义重写的属性及方法。

    正确答案: Overridable,Overrides
    解析: 暂无解析

  • 第21题:

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

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

  • 第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为虚基类。