一个基类Person的多个派生类 代码参考
2024-10-09 05:34:53
#include <iostream>
#include <cstring> using namespace std; class Person
{
protected:
char Name[];
char Sex;
int Age;
public:
void Register(char *name, int age, char sex);
void ShowMe();
}; class Teacher:public Person
{
private:
char Dept[];
int Salary;
public:
Teacher(char *dept, int salary, char *name, char sex, int age);
void showme();
}; class Student:public Person
{
private:
char ID[];
char Class[];
public:
Student(char *name, int age, char sex, char *id, char *classid);
void showme();
}; void Person::Register(char *name,int age,char sex)
{
strcpy(Name,name);
Age=age;
Sex=sex;
return;
} void Person::ShowMe()
{
cout<<"姓名 "<<Name<<endl;
if(Sex=='m') cout<<"性别 男"<<endl;
else cout<<"性别 女"<<endl;
cout<<"年龄 "<<Age<<endl;
return;
} Teacher::Teacher(char *dept, int salary, char *name, char sex, int age)
{
strcpy(Dept,dept);
Salary=salary;
Person::Register(name,age,sex);
} void Teacher::showme()
{
Person::ShowMe();
cout<<"工作单位 "<<Dept<<endl;
cout<<"月薪 "<<Salary<<endl;
return;
} Student::Student(char *name, int age, char sex, char *id, char *classid)
{
Person::Register(name,age,sex);
strcpy(ID,id);
strcpy(Class,classid);
} void Student::showme()
{
cout<<"学号 "<<ID<<endl;
Person::ShowMe();
cout<<"班级 "<<Class<<endl;
return;
} int main()
{
char name1[],name2[],Dept[],ID[],Class[],Sex1,Sex2;
int Salary,Age1,Age2;
cin>>name1>>Age1>>Sex1>>Dept>>Salary;
cin>>name2>>Age2>>Sex2>>ID>>Class;
Teacher one(Dept,Salary,name1,Sex1,Age1);
Student two(name2,Age2,Sex2,ID,Class);
one.showme();
two.showme();
return ;
}
最新文章
- Python初学者之网络爬虫(二)
- 渗透测试常规思路分析-FREEBUF
- UEditor上传图片到七牛云储存(c#)
- Silverlight读取Zip文件中的图片与视频
- SQL最简单分类简介
- C​+​+​默​认​构​造​函​数
- poj2608---几个字母映射到同一个数字
- github ignore 规范
- CentOS 7 vi编辑命令
- 【blog】SpringBoot事务
- Button去除边框方法
- 格式化p6spy的输出日志
- UVALive 5844 dfs暴力搜索
- [转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出
- Vue.js学习笔记(二)
- 【CTF WEB】文件包含
- hdu3790最短路径问题(BFS+优先队列)
- linux下,将一个目录中的图片文件合成为gif图片
- 【转】Java线程系列:Callable和Future
- Windows平台下源码分析工具