下列关于虚函数的描述中,正确的是( )。
下列关于虚函数的描述中,正确的是( )。
A、使用虚函数就一定产生多态性
B、虚函数只能是类中的一个成员函数,但不能是静态成员
C、一个类中仅可以声明一个纯虚函数
D、在构造函数和析构函数中调用虚函数采用动态联编
【正确答案】:B
【题目解析】:虚函数只能是类中的一个成员函数,但不能是静态成员。关键字virtual指示C++使用虚函数产生运行时的多态性有三个前提:(1)类之间的继承关系满足赋值兼容性规则;(2)改写了同名虚函数;(3)根据赋值兼容性规则使用指针或引用。分两种情况:①按赋值兼容性规则使用基类指针或引用访问虚函数;②把指针或引用作为函数参数,即这个函数不一定是类的成员函数,可以是普通函数,而且可以重载。注意:满足前两条并不一定产生动态联编,必须同时满足第三条才能保证实现动态联编。编译器对调用虚函数进行动态联编,这种多态性是程序运行到需要的语句处才动态确定的,所以称为运行时的多态性。不过,使用虚函数并不一定产生多态性,也不一定使用动态联编。
Top