单选题 有如下程序: #inc1ude<iostream> using namespace std; c1ass Mountain{ int height; public: Mountain (int h=0):height(h){} virtual char* GetName()const{retum"山';} int GetHeight()const{return height;) }; c1ass Lushan:public Mountain{ Public: Lushan(int d):Mountain(d){} Char*GetName()const{return"庐山';} }; int main(){ Mountain *p=new Lushan(1000); cout<<p—>GetName()<<"海拔"<<p—>GetHeight()<<"米"; return0; } 运行这个程序的输出结果是( )。
【正确答案】 A
【答案解析】解析:在基类Mountain中定义了虚函数GetName0输出字符串“山”,而在派生类Lushan中对虚函数GetName()进行了重新定义,输出字符串“庐山”。在主函数中对派生类中的虚函数GetName0进行了多态调用,此时调用的是派生类中重新定义的GetName0,输出字符字符串“庐山”。