itgle.com

下面关于虚函数的描述中,正确的是( )。A)基类中利用virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加virtual来说明B)虚函数是非成员函数C)虚函数是static类型的成员函数D)派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型

题目

下面关于虚函数的描述中,正确的是( )。

A)基类中利用virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加virtual来说明

B)虚函数是非成员函数

C)虚函数是static类型的成员函数

D)派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型


相似考题
更多“下面关于虚函数的描述中,正确的是( )。 A)基类中利用virtual关键字说明一个虚函数后,其派生类中 ”相关问题
  • 第1题:

    下面关于虚函数的描述,错误的是( )。

    A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

    B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数

    C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

    D.基类中说明的纯虚函数在其任何派生类中都必须实现


    正确答案:B
    基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。

  • 第2题:

    下面关于虚函数的描述中,正确的是( )。

    A.基类中利用virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加virtual来说明

    B.虚函数是非成员函数

    C.虚函数是static类型的成员函数

    D.派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型


    正确答案:A
    解析:虚函数是非static类型的成员函数,基类中可以利用virtual关键字来声明虚函数,派生类中定义相同原型函数时可不必加virtual说明,直接重写基类中的函数。在派生类中的虚函数必须与基类中的虚函数具有相同的参数个数与类型。

  • 第3题:

    下列关于纯虚函数与抽象类的描述中,错误的是( )。

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

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

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

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


    正确答案:A

  • 第4题:

    关于虚函数的描述中正确的是

    A.虚函数是一个静态成员函数

    B.虚函数是一个非成员函数

    C.虚函数既可以在函数说明时定义,也可以在函数实现时定义

    D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型


    正确答案:D
    解析:虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态性。所以,在派生类中定义的虚函数必须和基类中对应的虚函数具有相同的参数个数和类型。

  • 第5题:

    关于纯虚函数和抽象类的描述中,( )是错误的。

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

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

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

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


    正确答案:C

  • 第6题:

    下列关于虚函数的描述中,正确的是( )。

    A.如果在重定义函数时使用了保留字virtual,则该重定义函数仍然是虚函数

    B.虚函数不得声明为静态函数

    C.虚函数不得声明为另一个类的友元函数

    D.派生类必须重新定义基类的虚函数


    正确答案:B
    解析:被关键词virtual说明的函数称为虚函数。对于虚函数有以下限制:
      ①只有类的成员函数才能说明为虚函数。这是因为,虚函数仅适用于有继承关系的类对象,所以普通函数不能说明为虚函数。
      ②静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。
      ③内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置。即使虚函数在类的内部定义,编译时仍将其看作是非内联的。
      ④构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。只有在构造完成后,对象才能成为一个类的名副其实的实例。  、
      ⑤析构函数可以是虚函数,而且通常说明为虚函数。说明虚函数的目的在于:使用 delete运算符删除一个对象时,能确保析构函数被正确地执行。这是因为设置虚析构函数后,可以利用动态联编方式选择析构函数。
      ⑥一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。

  • 第7题:

    下面关于虚函数的描述中,正确的是( )。

    A.虚函数是一个静态成员函数

    B.虚函数是一个非成员函数

    C.虚函数既可以在函数说明时定义,也可以在函数实现时定义

    D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型


    正确答案:D
    解析:本题考核虚函数的定义。虚函数是非静态的成员函数。它不能是友元函数,但可以在另一个类中被声明为友元函数。虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方。派生类的虚函数与基类中对应的虚函数必须满足下列条件,否则派生类中的虚函数将丢失其虚函数特性,在调用时进行静态联编:①派生类中的虚函数与基类中的虚函数具有相同的名称。②派生类中的虚函数与基类中的虚函数具有相同的参数个数和相同的对应参数类型。③派生类中的虚函数与基类中的虚函数的返回值,或者相同,或者都返回指针或引用。并且派生类中虚函数所返回的指针或引用的基类型,是基类型中的虚函数所返回的指针或引用的基类型的子类型。

  • 第8题:

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

    • A、override
    • B、new
    • C、static
    • D、virtual

    正确答案:A

  • 第9题:

    关于虚函数的描述中,()是正确的。

    • A、虚函数是一个静态成员函数
    • B、虚函数是一个非成员函数
    • C、虚函数既可以在函数说明时定义,也可以在函数实现时定义
    • D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型

    正确答案:D

  • 第10题:

    单选题
    关于虚函数的描述中,()是正确的。
    A

    虚函数是一个static类型的成员函数

    B

    虚函数是一个非成员函数

    C

    基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数

    D

    派生类的虚函数与基类的同名虚函数应具有不同的参数个数和类型


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

  • 第11题:

    单选题
    关于纯虚函数和抽象类的描述中,错误的是()。
    A

    纯虚函数是一种特殊的虚函数,它没有具体的实现

    B

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

    C

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

    D

    抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出


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

  • 第12题:

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

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

    B

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

    C

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

    D

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


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

  • 第13题:

    下列关于纯虚函数的描述中,正确的是( )。

    A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数

    B.纯虚函数的声明总是以“=0;”结束

    C.派生类必须实现基类的纯虚函数

    D.含有纯虚函数的类不能是派生类


    正确答案:B
    解析:基类的虚函数有时候不可能被调用到,这时可定义该虚函数为纯虚函数。纯虚函数没有函数体,但一定要进行说明,它告诉编译器,派生类必须定义该成员函数。纯虚函数是一种特殊的虚函数,纯虚函数是在虚函数的后面加上“=0”,表示该虚函数无函数体,并非赋值运算。纯虚函数的一般格式为:virtual类型>函数名>(参数表>)=0;。在很多情况下,在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数.

  • 第14题:

    下列是关于虚函数的描述,正确的是______。

    A.虚函数是一个static类型的成员函数

    B.虚函数是一个非成员函数

    C.基类中采用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明

    D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型


    正确答案:C
    解析:根据C++语法规定,虚函数在继承层次结构中总是自动从基类传播下去,因此,基类中采用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明。

  • 第15题:

    下列关于虚函数的说法中,正确的是( )。

    A.如果在重定义虚函数时使用了保留字virtual,则该重定义函数仍然是虚函数

    B.虚函数不得声明为静态函数

    C.虚函数不得声明为另一个类的私有函数

    D.派生类必须重新定义基类的虚函数


    正确答案:B
    解析:使用虚函数时必须注意下列事项:①只有类的成员函数才能说明为虚函数。这是因为虚函数仅适用于有继承关系的类对象,所以普通函数不能说明为虚函数。②静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。③内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置。即使虚函数在类的内部定义,编译时仍将其看作是非内联的。④构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。只有在构造完成后,对象才能成为一个类的名副其实的实例。⑤析构函数可以是虚函数,而且通常说明为虚函数。说明虚函数的目的在于;使用delete运算符删除一个对象时,能确保析构函数被正确地执行。这是因为设置虚析构函数后,可以利用动态联编方式选择析构函数。⑥一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。

  • 第16题:

    当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中 ______。

    A.都是虚函数

    B.只有被重新说明时才是虚函数

    C.只有被重新说明为virtual时才是虚函数

    D.都不是虚函数


    正确答案:A

  • 第17题:

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

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

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

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

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


    正确答案:B

  • 第18题:

    下列关于纯虚函数与抽象类的描述中,错误的是( )。

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

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

    C.一个基类声明了纯虚函数,该基类的派生类一定不是抽象类

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


    正确答案:C
    C。【解析】纯虚函数是在声明虚函数时被“初始化”为0的虚函数。不定义对象而只作为一种基本类型作为继承的类,称为抽象类。凡是包含纯虚函数的类都是抽象类。抽象类的作用是作为一个类族的共同基类。

  • 第19题:

    下面描述中,正确的是()。

    • A、virtual可以用来声明虚函数
    • B、含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类
    • C、即使基类的构造函数没有参数,派生类也必须建立构造函数
    • D、静态数据成员可以通过成员初始化列表来初始化

    正确答案:A

  • 第20题:

    虚函数是一种()成员函数。说明方法是在函数名前加关键字()。虚函数具有()性,在基类中被说明的虚函数,具有相同说明的函数在派生类中自然是虚函数。


    正确答案:非静态; virtual;继承

  • 第21题:

    单选题
    关于虚函数的描述中,()是正确的。
    A

    虚函数是一个静态成员函数

    B

    虚函数是一个非成员函数

    C

    虚函数既可以在函数说明时定义,也可以在函数实现时定义

    D

    派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型


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

  • 第22题:

    单选题
    下面关于虚函数的描述中正确的是(  )。
    A

    虚函数是一个静态成员函数

    B

    虚函数是一个非成员函数

    C

    虚函数既可以在函数说明时定义,也可以在函数实现时定义

    D

    派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型


    正确答案: C
    解析:
    AB两项错误,在基类中用virtual声明成员函数为虚函数,虚函数是成员函数,且不能被static修饰;C项错误,虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的时候;D项正确,派生类的虚函数与基类中对应的虚函数具有相同的函数名、相同的参数个数和类型。返回值类型或者相同,或者都返回指针或引用,并且派生类虚函数所返回的指针或引用的基类型是基类中的虚函数所返回的指针或引用的基类型的子类型。

  • 第23题:

    填空题
    虚函数是一种()成员函数。说明方法是在函数名前加关键字()。虚函数具有()性,在基类中被说明的虚函数,具有相同说明的函数在派生类中自然是虚函数。

    正确答案: 非静态, virtual,继承
    解析: 暂无解析