问题 填空题

如果不使用多态机制,那么通过基数的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。下列程序没有使用多态机制,其输出结果是【 】。#includeusing namespace std;class Base{public:void print(){cout<<′B′;}};class Derived:public Base{public:void print(){cout<<′D′;}} int main(){ Derived*pd=new Derived();Base*pb=pd;pb->print();pd->print();delete pd;retum 0: }

答案

参考答案:BD

解析:在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针所调用的只能是基类的那个函数版本,无法调用到派生类中的重定义函数。

单项选择题
选择题