填空题
如果不使用多态机制,那么通过基数的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。下列程序没有使用多态机制,其输出结果是 1。
#include
using namespace std;
class Base{
public:
void print2{cout<<′B′;}};
class Derived:public Base{
public:
void print3{cout<<′D′;}}
int main4
{
Derived*pd=new Derived5;
Base*pb=pd;
pb->print6;
pd->print7;
delete pd;
retum 0:
}
【正确答案】
1、BD
【答案解析】在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针所调用的只能是基类的那个函数版本,无法调用到派生类中的重定义函数。