实验3 继承与派生
更新时间:2023-10-07 00:39:01 阅读量: 综合文库 文档下载
- 实验3r原则推荐度:
- 相关推荐
实验3 继承与派生 (4学时) 实验目的:
1.学会从现有类派生出新类的方式。
2.了解基类成员在派生类中的访问控制。
3.熟悉派生类中构造函数和析构函数的调用顺序。 4.掌握虚基类的作用和用法。
实验内容:
1.仔细阅读下列程序,写出运行结果。
#include
A(int m){ cout<<\~A(){ cout<<\}; class B { public:
B(int n){ cout<<\B(){cout<<\};
class C: public B,public A { public:
C(int a,int b,int c,int d,int e):A(b),B(e),bb(c),aa(d) { cout<<\~C(){ cout<<\private: A aa; B bb; };
int main()
{ C cc(1,2,3,4,5); }
分析:注意派生类和基类中构造函数和析构函数的调用顺序。 程序输出结果如下:
B constructor:5 A constructor:2
A constructor:4 B constructor:3 C constructor:1 C destructor B destructor
A destructor A destructor B destructor
2.定义一个Person类,数据成员包含能够保存姓名的变量name,其中有能够输出姓名的成员函数PrintName()。
现从Person类派生出Worker 类,该类包括数据成员number用来记录对象的工号、sex用来记录对象的性别、age用来记录对象年龄、add用来记录对象的家庭住址;包括函数成员printinfor()用来输出对象的个人信息。 要求:
⑴ 构造Worker类对象输出该对象的工号、年龄、家庭住址等信息。 ⑵ 在Worker类的printinfor()成员函数中须调用Person类的成员函数PrintName()。
输出结果如:丁一 10127 男 28 长江路369号
3.定义基类Student,含有私有数据成员num、name、sex,公有成员函数get_value()用于输入数据,display()用于输出数据。定义派生类Student1(从基类公有继承),含有私有数据成员age、addr,设计派生类的成员函数,使程序运行时输入num、name、sex、age、addr的值,程序应输出以上5个数据的值。 4.修改上面的程序,基类数据成员为保护类型,派生类从基类保护继承,实现输入和输出5个数据成员的值。
5.分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:①在两个基类中都包含一部分相同名字的数据成员name(姓名),age(年龄)和成员函数display()。②在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre(教师兼干部)中还包含数据成员wages(工资)。③在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、职称,然后再用cout语句输出职务与工资。
参考答案:
2. #include
string name; public:
Person(string nm){name=nm;}
void PrintName(){cout << \};
class Worker:public Person { private:
string number; string sex; int age;
string addr; public:
Worker(string nm,string num,string sx,int ag,string add):Person(nm) {number=num; sex=sx; age=ag; addr=add; }
void printinfor(){ PrintName();
cout << \ cout << \ cout << \ cout << \ } };
int main(){
Worker a(\丁一\男\长江路369号\a.printinfor(); return 0; }
3. #include
string number; string name; string sex; public:
void get_value(string num,string nm,string sx) {
number=num; name=nm; sex=sx;
}
void display(){
cout << \cout << \cout << \} };
class Student1:public Student { private: int age;
string addr; public:
void get_value1(string num,string nm,string sx,int ag,string add) {
get_value(num,nm,sx); age=ag; addr=add; }
void display1(){ display();
cout << \ cout << \} };
int main(){ Student1 a;
a.get_value1(\丁一\男\长江路369号\a.display1(); return 0; }
4. #include
string number; string name; string sex; public:
void get_value(string num,string nm,string sx) {
number=num; name=nm; sex=sx; }
void display(){
cout << \cout << \cout << \} };
class Student1:protected Student { private: int age;
string addr; public:
void get_value1(string num,string nm,string sx,int ag,string add) {
get_value(num,nm,sx); age=ag; addr=add; }
void display1(){ display();
cout << \ cout << \} };
int main(){ Student1 a;
a.get_value1(\丁一\男\长江路369号\a.display1(); return 0; }
正在阅读:
实验3 继承与派生10-07
二氧化硫的说课稿05-15
泸州老窖股利政策分析05-08
龙岩连城县小学数学六年级上册专项复习一:分数乘法的应用06-05
武大地籍测量学第三版10-09
单片机试题库(有答案)08-27
外科手术部位感染预防与控制技术指南06-06
二月二日江上行02-19
25 膨胀力试验12-30
某餐饮管理公司绩效考核管理体系设计方案06-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 派生
- 继承
- 实验
- 2019武大中哲考研经验分享
- 一年级入学考试试题(幼儿园升小学入学测试题)
- 全国行政区划代码 - 图文
- 《低碳经济与循环经济》试题及答案 - 图文
- 招投标实验教学练习仿真系统-使用手册 - 图文
- 如何在小学英语课堂中培养学生的核心素养
- 超精制八年级上语文的第五单元导学稿及答案
- 道德与学术规则测试-2016寒假
- 福州市高中心理健康教育模拟考试题及答案
- 轻型井点降水方案设计
- 第五节 乙醛 醛类
- 2018届高考地理二轮专题复习作业测试题:作业12 Word版含答案 - 图文
- 我们的节日 - 元宵节活动方案 - 图文
- 东莞市南城区政府采购
- SMW工法规范
- 实验三 Windows网络配置和TCPIP协议配置及诊断
- 财管习题(全)
- 正常的争吵能促进夫妻感情,该如何去化解争吵后的矛盾
- 2018年中国LED驱动芯片行业市场行情监测与发展分析报告目录
- eviews实验教程-实验二 数据处理