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

admin2010-06-06  42

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

选项 A、如果在重定义函数时使用了保留字virtual,则该重定义函数仍然是虚函数
B、虚函数不得声明为静态函数
C、虚函数不得声明为另一个类的友元函数
D、派生类必须重新定义基类的虚函数

答案2

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

最新回复(0)