#include <iostream>
using namespace std;
class Person
{
public:
Person(string na, int a):name(na),age(a) {}
virtual void show()=0;
protected:
string name; // 姓名
int age; // 年龄
};
class Leader: public Person
{
private:
string job; // 职务
string dep; // 部门
public:
Leader(string na, int a, string j, string d):Person(na,a),job(j),dep(d){ }
void show()
{
cout<<name<<" is "<<job<<" in "<<dep<<" department."<<endl;
}
};
class Engineer: public Person
{
string major1; // 专业
public:
Engineer (string na, int a, string m): Person(na, a),major1(m) { }
void show(){cout<<name<<" is an engineer of "<<major1<<" major."<<endl;}
};
int main()
{
Person *p;
string name, job, dept,major;
int age;
cin>>name>>age>>job>>dept;
p=new Leader(name,age,job,dept);
p->show();
cin>>name>>age>>major;
p=new Engineer(name,age,major);
p->show();
return 0;
}
OJ——指向基类的指针访问派生类的成员函数
最新推荐文章于 2023-01-29 23:15:07 发布