单选题 有如下程序:
#include<iostream>
using namespace std;
class Base
{
public:
virtual void disp(){cout<<"B";}
};
class Derived:public Base
{
public:
void disp(){Base::disp(); cout<<"D";}
};
int main()
{
Base *ptr;
Derived obj;
ptr=&obj;
ptr->disp();
return 0;
}
执行程序的输出结果是______。
【正确答案】 C
【答案解析】[解析] 由于派生类Derived已对基类Base的虚函数disp()进行了重定义,而基类指针ptr已指向派生类对象obj,因此“ptr->disp();”调用的是派生类的函数版本。