niusouti.com
更多“基类中的纯虚函数在派生类中必须重新定义。”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

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

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

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

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

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


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

  • 第3题:

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

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

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

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

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


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

  • 第4题:

    关于抽象类,下列表述正确的是( )。

    A.抽象类的成员函数中至少有一个是没有实现的函数(即无函数体定义的函数)

    B.派生类必须实现作为基类的抽象类中的纯虚函数

    C.派生类不可能成为抽象型

    D.抽象类不能用来定义对象


    正确答案:C

  • 第5题:

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

    A.虚基类

    B.抽象类

    C.虚函数类

    D.模板类


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

  • 第6题:

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

    A.虚析构函数

    B.虚构造函数

    C.纯虚函数

    D.静态成员函数


    正确答案:C

  • 第7题:

    在派生类中重新定义虚函数时,除了( )方面,其他方面都必须与基类中相应的虚函数保持一致。

    A.参数个数

    B.参数类型

    C.函数名称

    D.函数体


    正确答案:D

  • 第8题:

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

    A.虚析构函数

    B.构造函数

    C.纯虚函数

    D.静态成员函数


    正确答案:C

  • 第9题:

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

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

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

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

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


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

  • 第10题:

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

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

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

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

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


    正确答案:B
    B。【解析】纯虚函数是在声明虚函数时被“初始化”为0的虚函数。纯虚函数没有函数体,纯虚函数的作用是在基类中为其派生类保留一个函数名称。

  • 第11题:

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

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

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

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

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


    正确答案:A

  • 第12题:

    在派生类中重新定义虚函数时,必须在下列哪方面与基类保持一致()

    • A、参数类型
    • B、参数名字
    • C、操作内容
    • D、赋值

    正确答案:A

  • 第13题:

    在派生类中重新定义虚函数时,除了(),其它方面都必须与基类中相应的虚函数保持一致。

    A、参数个数

    B、参数类型

    C、函数体

    D、函数名称


    参考答案:C

  • 第14题:

    在基类中没有具体定义,但要求任何派生类都自已定义版本的虚函数是()。

    A.虚析构函数;

    B.构造函数;

    C.纯虚函数;

    D.静态成员函数。


    参考答案:C
    析:如果虚基类的派生类不重定义虚基类的纯虚函数,该派生类也将虚化。

  • 第15题:

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

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

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

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

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


    正确答案:A

  • 第16题:

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

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

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

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

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


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

  • 第17题:

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

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

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

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

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


    正确答案:C

  • 第18题:

    下面有关纯虚函数的表述中正确的是( )

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

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

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

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


    正确答案:D
    解析:C++中的某些情况下基类无法确定一个虚函数的具体操作方法或内容,只能靠派生类来提供各个具体的实现版本。基类中必须靠派生类提供重定义的虚函数叫做纯虚函数。为了将一个虚函数声明为一个纯虚函数,需要在结束符号前加上=0;若派生没有重定义纯虚函数,这个函数仍然是纯虚函数。

  • 第19题:

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

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

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

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

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


    正确答案:B

  • 第20题:

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

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

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

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

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


    正确答案:C

  • 第21题:

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

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

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

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

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


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

  • 第22题:

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

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

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

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

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


    正确答案:B

  • 第23题:

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


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

  • 第24题:

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

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

    B

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

    C

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

    D

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


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