单选题
有如下程序:
#include<iostream>
using namespace std;
class Base{
public:
virtual void function1(){cout<<"0";}
void function2(){cout<<"1";}
};
class Derived:public Base{
public:
void function1(){cout<<"2";}
void function2(){cout<<"3";}
};
int main(){
Base*p=new Derived();
p->function1();
p->function2();
return 0;
}
运行时的输出结果是______。
【正确答案】
B
【答案解析】[解析] 基类的指针可以指向派生类的对象,但是反过来,派生类的指针是不允许指向基类的对象的。通过该指针也只能访问派生类中从基类继承来的公有成员,不能访问派生类中新增的成员,除非通过强制类型转换将基类的指针转换为派生类的指针。