您的位置:首页 > 编程语言 > PHP开发

What will the following polymorphic code output in C ++

2014-04-07 16:05 459 查看
本题来源于Morgan Stanley暑期实习生招聘中的online test环节,考察了C++中多态、继承方面的知识。


What will the following polymorphic code output in C ++?

#include <iostream>
#include <string>
#include <queue>
#include <map>
using namespace std;

class Base{
public:
virtual int number(){return 0;}
char letter(){ return 'b';}  //这个函数没有声明为virtual虚函数
};

class Two:public Base{
virtual int number(){ return 2;}
char letter(){ return 't';}
};

class Four:public Base{
virtual int number(){return 4;}
char letter(){return 'f';}
};

void print(Base* base){
cout<<base->letter()<<base->number()<<endl;
}

int main()
{
Base base;
Two two;
Four four;
print(&base); //cout: b0
print(&two);  //cout: b2
print(&four); //cout: b4

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐