下列关于虚函数的描述中,正确的是( )
A、
使用虚函数就一定产生多态性
B、
虚函数只能是类中的一个成员函数,但不能是静态成员
C、
一个类中仅可以声明一个纯虚函数
D、
在构造函数和析构函数中调用虚函数采用动态联编
【正确答案】:B
【题目解析】:
静态成员函数不能是虚函数。包含虚函数的类称为“多态类”。故B正确。
关键字virtual指示C++编译器对调用虚函数进行动态联编。这种多态性是程序运行到需要的语句处才动态确定的,所以称为运行时的多态性,因此A错误。
一个类可以说明多个纯虚函数,包含有纯虚函数的类称为抽象类,因此C错误。
在构造函数和析构函数中调用虚函数采用静态联编,即它们所调用的虚函数是自己的类或基类中定义的函数,但不是任何在派生类中重定义的虚函数,因此D错误。