下面关于虚函数的描述,错误的是( )。A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C.虚函数可以是另一个类的友元函数,但不能是静态成员函数D.基类中说明的纯虚函数在其任何派生类中都必须实现

题目

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

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

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

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

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


相似考题
更多“下面关于虚函数的描述,错误的是( )。A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为 ”相关问题
  • 第1题:

    关于类的静态成员函数描述错误的是()

    A、在创建对象前不存在

    B、不能说明为虚函数

    C、不能直接访问非静态函数

    D、不是对象的成员


    参考答案:A

  • 第2题:

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

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

    B.虚函数是非成员函数

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

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


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

  • 第3题:

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

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

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

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

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


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

  • 第4题:

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

    A.都是虚函数

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

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

    D.都不是虚函数


    正确答案:A

  • 第5题:

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

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

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

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

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


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

  • 第6题:

    在C++语言中,一个函数的定义前加上关键字【 】时,该函数就声明为内联函数。


    正确答案:inline
    inline 解析:内联函数的声明方法。

  • 第7题:

    下面关于构造函数和析构函数的描述,错误的是( )。

    A.析构函数中调用虚函数采用静态联编

    B.对虚析构函数的调用可以采用动态联编

    C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

    D.构造函数可以声明为虚函数


    正确答案:D

  • 第8题:

    下面关于友元函数描述正确的是 ______。

    A.友元函数能访问类的所有成员

    B.友元函数是类的成员

    C.只有函数才能声明为另一个的友元

    D.友元函数能访问类的私有成员


    正确答案:D

  • 第9题:

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

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

    正确答案:A

  • 第10题:

    下面关于构造函数和析构函数的描述,错误的是()

    • A、析构函数中调用虚函数采用静态联编
    • B、对虚析构函数的调用可以采用动态联编
    • C、当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
    • D、构造函数可以声明为虚函数

    正确答案:D

  • 第11题:

    单选题
    下面关于构造函数和析构函数的描述,错误的是()
    A

    析构函数中调用虚函数采用静态联编

    B

    对虚析构函数的调用可以采用动态联编

    C

    当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

    D

    构造函数可以声明为虚函数


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

  • 第12题:

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

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

    B

    虚函数是非成员函数

    C

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

    D

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


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

  • 第13题:

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

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

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

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

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


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

  • 第14题:

    关于虚函数下面说的正确的是

    A.若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数

    B.虚函数不能声明为友元

    C.子类必须重定义父类的虚函数

    D.虚函数不能是static的


    正确答案:D
    解析:虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了virtual,则该重定义函数不一定还是虚函数。

  • 第15题:

    下面关于构造函数和析构函数的描述中,错误的是( )

    A.析构函数可以声明为虚函数

    B.对虚析构函数的调用可以采用动态联编

    C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响

    D.构造函数可以声明为虚函数


    正确答案:D

  • 第16题:

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

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

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

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

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


    正确答案:B

  • 第17题:

    在成员函数声明的前面加上关键词【 】修饰,即把该函数声明为虚函数。


    正确答案:virtual
    virtual 解析:说明虚函数的方法为:
    virtual类型说明符>函数名>(参数表>)
    其中,被关键词virtual说明的函数称为虚函数。

  • 第18题:

    在一个函数的定义或声明前加上关键字【 】时,该函数就声明为内联函数。


    正确答案:inline
    inline

  • 第19题:

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

    A.虚函数不能声明为另一个类的友元函数

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

    C.如果在重定义虚函数时使用了保留字virtual,那么该重定义函数仍是虚函数

    D.虚函数不能够声明为静态函数


    正确答案:D

  • 第20题:

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

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

    B)虚函数是非成员函数

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

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


    正确答案:A

  • 第21题:

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

    • A、虚函数是一个成员函数
    • B、虚函数具有继承性
    • C、静态成员函数可以说明为虚函数
    • D、在类的继承的层次结构中,虚函数是说明相同的函数

    正确答案:C

  • 第22题:

    单选题
    下面关于构造函数和析构函数的描述中,错误的是(  )。
    A

    析构函数可以声明为虚函数

    B

    对虚析构函数的调用可以采用动态联编

    C

    一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响

    D

    构造函数可以声明为虚函数


    正确答案: A
    解析:
    析构函数可以声明为虚函数,但是构造函数不能声明为虚函数;类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响;对虚析构函数的调用可以采用动态联编。

  • 第23题:

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

    虚函数是一个成员函数

    B

    虚函数具有继承性

    C

    静态成员函数可以说明为虚函数

    D

    在类的继承的层次结构中,虚函数是说明相同的函数


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

  • 第24题:

    单选题
    关于虚函数,以下说法正确的是(  )。
    A

    若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数

    B

    虚函数不能声明为友元

    C

    子类必须重定义父类的虚函数

    D

    虚函数不能是static的


    正确答案: B
    解析:
    在C++语言中,虚函数可以是友元函数,但不能是静态成员。虚函数的重定义函数,无论是否使用virtual关键字,仍然是虚函数。