实验二--类的继承与派生

上传人:我*** 文档编号:136123371 上传时间:2020-06-24 格式:DOC 页数:11 大小:202.50KB
返回 下载 相关 举报
实验二--类的继承与派生_第1页
第1页 / 共11页
实验二--类的继承与派生_第2页
第2页 / 共11页
实验二--类的继承与派生_第3页
第3页 / 共11页
实验二--类的继承与派生_第4页
第4页 / 共11页
实验二--类的继承与派生_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《实验二--类的继承与派生》由会员分享,可在线阅读,更多相关《实验二--类的继承与派生(11页珍藏版)》请在金锄头文库上搜索。

1、实验二 类的继承与派生一、 实验目的1. 掌握类的声明和使用。2. 掌握对象的声明和使用。3. 掌握具有不同访问属性的成员的访问方式。4. 观察构造函数和析构函数的执行过程。5. 学习声明和使用类的继承关系,声明派生类;6. 熟悉不同继承方式下对基类成员的访问控制;二实验内容1. 设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。具有的属性如下:姓名 char name11、编号char number7、性别char sex3、生日birthday、身份证号

2、charid20。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。在测试程序中声明people 类的对象数组,录入数据并显示。2. 从people(人员)类派生出student(学生)类,添加属性:班号char classNO7;从people 类派生出teacher(教师)类,添加属性:职务char pship11、部门char departt21。从student 类中派生出graduate(研究生)类,添加属性:专业char subject21、导师teacher adviser;从gr

3、aduate 类和teacher 类派生出TA(助教博士生)类,重载相应的成员函数,测试这些类。三 . 实验步骤1. 程序代码第一题#include #include using namespace std; class Date /日期类 private: int year; int month; int day; public: Date() /默认构造 Date(int y,int m,int d) /带参构造 year=y; month=m; day=d; void set() /设置数据函数 cinyearmonthday; void display() /显示函数 coutyear

4、年month月day日; ; class Person /人员类 private:string name;int num; char sex; Date birthday; char ID18; public: Person() /默认构造 Person(int n,int y,int m,int d,char id18,char s=m):birthday(y,m,d) num=n; sex=s; strcpy(ID,id); /有默认值的带参构造 Person(Person& p) /拷贝构造 name=p.name;num=p.num; sex=p.sex; birthday=p.bir

5、thday; strcpy(ID,p.ID); void input() /输入函数 cout录入数据:endl; coutname;coutnum; coutsex; cout生日:; birthday.set(); coutID; ID18=0; coutendl; void output() /输出函数 cout编号:numendl; cout姓名:nameendl;cout性别:sexendl; cout生日:; birthday.display(); coutendl; cout身份证号:IDendl; Person() /析构函数 cout num号人员已经录入endl; ; in

6、t main() Person p1; p1.input(); p1.output(); return 0; 第二题#include #include using namespace std; class Date /日期类 private: int year; int month; int day; public: Date() /默认构造 Date(int y,int m,int d) /带参构造 year=y; month=m; day=d; void set() /设置数据函数 cinyearmonthday; void display() /显示函数 coutyear年month月d

7、ay日; ; class Person /人员类 private:string name;int num; char sex10; Date birthday; char ID18; public: Person() /默认构造 Person(int n,int y,int m,int d,char id18,char sex10):birthday(y,m,d) num=n; strcpy(ID,id); /有默认值的带参构造 Person(Person& p) /拷贝构造 name=p.name;num=p.num; birthday=p.birthday; strcpy(ID,p.ID)

8、; void input() /输入函数 coutname;coutnum; coutsex; cout生日:; birthday.set(); coutID; ID18=0; coutendl; void output() /输出函数 cout编号:numendl;cout姓名:nameendl; cout性别:sexendl; cout生日:; birthday.display(); coutendl; cout身份证号:IDendl; Person() /析构函数 /cout num号人员已经录入endl; ; class stduent:public Person char class

9、no7;public:student()cout*endl; void input()Person:input(); cout输入学号classno;void getno()Person:output(); cout学号为:classnoendl;class teacher:public Person char pship11,departt21;public :teacher()cout*endl; void input()Person:input();cout输入职务pship;cout输入部门departt;void inputt()cout输入职务pship;cout输入部门depar

10、tt;void getno()Person:output(); cout职务为:pshipendl;cout部门为:departtendl;void output ()cout职务为:pshipendl;cout部门为:departtendl;class graduate:public stduent char subject21, adviser21;public :graduate() coutendl;void input()stduent:input();cout输入专业:subject;cout输入导师:adviser;void getno() stduent:getno(); co

11、ut专业为:subjectendl; cout导师为:adviserendl;class TA :public graduate,teacherpublic :TA() void input()graduate:input();teacher:inputt();void getno() graduate:getno(); teacher:output(); ;int main() Person p1; stduent s;teacher t;graduate g;TA T;cout请依次输入人员数据信息endl;p1.input();cout请输入学生数据信息;s.input();cout请输入老师数据信息;t.input();cout请输入研究生数据信息;g.input();cout请输入助教博士数据信息; T.input(); cout人员数据信息为:; p1.output()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号