单选题
有如下程序:
#include<iostream>
using namespace std;
class Base{
public:
virtual void function1(){cout<<"0";}
void function2(){out<<"1";}
};
class Derived:public Base{
oublic:
void function1(){cout<<"2";}
void function2(){cout<<"3";}
};
int main(){
Base*p=new Derived();
p->function1(); p->function2();
return 0;
}
运行时的输出结果是______。
【正确答案】
B
【答案解析】[解析] 本题中需要注意的是虚函数的定义:指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数,这个函数就是虚函数。所以p->functionl();会指向实现类Derived,而p->function2()则会指向Base。