您的位置:首页 > 其它

第十六周oj刷题——Problem J: B3 指向基类的指针访问派生类的成员函数

2015-06-24 17:16 381 查看
<h2>Description</h2><divclass="content"><div>领导类(Leader)和工程师类(Engineer)都是人类(Person)的派生类。请将下面代码中空缺的部分填上,使main函数中能通过指向Person类的指针,调用Leader和Engineer类中各自的成员函数show,输出相关的信息</div><div><h2>Input</h2><divclass="content"><div>第一行输入是某领导的信息,如“Wang40ManagerSales”表示40岁的王(Wang)领导是销售部(Sales)的经理(Manager)。</div><div>第二行输入某工程师的信息,如“Zhang30Software”表示30岁的张(Zhang)是工程师,他的专业是软件(Software)</div><p></p></div><h2>Output</h2><divclass="content"><div>规定的格式输出信息,请注意空格及最后的标点。</div><p></p></div><h2>SampleInput</h2><preclass="content"><spanclass="sampledata">Wang40ManagerSales
Zhang30Software</span>

SampleOutput

WangisManagerinSalesdepartment.
ZhangisanengineerofSoftwaremajor.




/*Allrightsreserved.
*文件名称:test.cpp
*作者:陈丹妮
*完成日期:2015年6月21日
*版本号:v1.0
*/
#include<iostream>
usingnamespacestd;
classPerson
{
public:
Person(stringna,inta):name(na),age(a){}
voidvirtualshow(){}
protected:
stringname;//姓名
intage;//年龄
};
classLeader:publicPerson
{
private:
stringjob;//职务
stringdep;//部门
public:
Leader(stringna,inta,stringj,stringd):Person(na,a),job(j),dep(d){}
voidshow()
{
cout<<name<<"is"<<job<<"in"<<dep<<"department."<<endl;
}
};

classEngineer:publicPerson
{
stringmajor;//专业
public:
Engineer(stringna,inta,stringm):Person(na,a),major(m){}
voidshow()
{
cout<<name<<"isanengineerof"<<major<<"major."<<endl;
}
};
intmain()
{
Person*p;
stringname,job,dept,major;
intage;
cin>>name>>age>>job>>dept;
p=newLeader(name,age,job,dept);
p->show();
cin>>name>>age>>major;
p=newEngineer(name,age,major);
p->show();
return0;
}




总结:这道题是我出问题较多的题,也可是我的问题所在,我会借这道题找出自己的问题,在不断地练习,把它拿下,加油加油!!

心得体会:今天这个测试做的还是不错的,挺顺利的,就是自己速度有点慢了,还有一点的小问题,希望在考前的这几天能够好好的刷题,不断的积累,我觉得刷题积累真的很好用,今天就是一个很好的证明。继续努力,继续坚持,向优秀的人学习,不断取得进步!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: