关于虚函数,以下说法正确的是( )。A.若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数

题目

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

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

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

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

D.虚函数不能是static的

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

第1题:

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

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

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

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

D.虚函数不能是static的


正确答案:D

第2题:

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

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

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

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

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


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

第3题:

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

A.纯虚函数是在声明虚函数时被初始化为0的函数

B.纯虚函数没有函数体

C.纯虚函数可以被调用

D.如果在一个类中声明了纯虚函数,该虚函数中在派生类中仍有可能为虚函数


参考答案:C

第4题:

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

A.虚析构函数;

B.构造函数;

C.纯虚函数;

D.静态成员函数。


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

第5题:

有一种特殊的虚函数,重定义时不要求同名,这种虚函数是【 】。


正确答案:虚析构函数
虚析构函数 解析:分析构函数也可以通过virtual修饰而声明为虚函数。虚析构函数与一般虚函数的不同之处在于:
①重定义函数就是派生类的析构函数,不要求同名。
②一个虚析构函数的版本被调用执行后,接着就要调用执行其基类版本,依次类推,直到调用执行了派生序列的最开始的那个虚析构函数版本为止。

第6题:

下列关于虚函数与函数重载区别的叙述中不正确的是( )。

A.函数说明形式上不同

B.函数重载允许是非成员函数,虚函数只能是成员函数

C.函数重载的调用依据参数和类型的差别,虚函数则依据对象

D.函数重载的本体可以在类外定义,虚函数不可以


正确答案:D
解析: A项,B项,C项均为虚函数与函数重载的不同之处。但有一点它们是相同的:在类内外定义均可。故 D项错误。

第7题:

析构函数可以是虚函数,构造函数不能定义为虚函数。()


参考答案:正确

第8题:

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

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

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

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

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


正确答案:C

第9题:

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

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

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

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

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


正确答案:D
解析:虚函数是非静态的成员函数,虚函数必须是类的成员函数,并且虚函数声明只能出现在类定义的函数原型声明中。派生类说明的虚函数应该与基类中的虚函数的参数个数相等,对应参数类型相同。

第10题:

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

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

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

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

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


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

更多相关问题