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

题目
下面关于虚函数的描述,错误的是

A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C.虚函数可以是另一个类的友元函数,但不能是静态成员函数
D.基类中说明的纯虚函数在其任何派生类中都必须实现
参考答案和解析
答案:B
解析:
基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派牛类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

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

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


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

第2题:

下面关于动态联编的描述中,错误的是( )。

A.动态联编是以虚函数为基础的。

B.动态联编是在运行时确定所调用的函数代码

C.动态联编调用函数操作是指向对象的指针或者对象的引用。

D.动态联编是在编译时确定操作函数


正确答案:D
解析:动态联编一直到程序运行时才能确定调用哪个函数。没有虚函数不能够实现动态联编,调用虚函数操作的是指向对象的指针或者对象的引用。

第3题:

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

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

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

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

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


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

第4题:

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

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

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

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

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


正确答案:D

第5题:

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

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

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

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

D.虚函数不能是static的


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

第6题:

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

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

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

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

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


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

第7题:

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

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

B.虚函数是非成员函数

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

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


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

第8题:

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

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

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

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

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


正确答案:D
解析: 构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。

第9题:

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

A.构造函数可以是虚函数

B.析构函数可以是虚函数

C.虚函数必须通过引用或基类的指针实现

D.虚函数的函数名必须与基类中对应的虚函数的函数名完全相同


正确答案:A
解析:构造函数不能是虚函数。

第10题:

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

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

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

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

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


正确答案:C

更多相关问题