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

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

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

B

虚函数是一个非成员函数

C

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

D

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

B.虚函数是非成员函数

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

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


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

第2题:

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

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

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

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

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


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

第3题:

当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。()


参考答案:正确

第4题:

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

A.虚析构函数

B.构造函数

C.纯虚函数

D.静态成员函数


正确答案:C

第5题:

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

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

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

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

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


正确答案:B

第6题:

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

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

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

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

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


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

第7题:

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

A.都是虚函数

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

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

D.都不是虚函数


正确答案:A

第8题:

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

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

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

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

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


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

第9题:

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

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

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

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

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


正确答案:D

第10题:

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

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

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

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

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


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

更多相关问题