实验四 类的继承与多态实验
更新时间:2023-12-17 21:26:01 阅读量: 教育文库 文档下载
- 实验四小推荐度:
- 相关推荐
实验四 类的继承与多态实验
【实验目的】
1.理解软件重用性的一种形式——继承。 2.能够通过继承已有的类创建新类。 3.理解基类和派生类的概念。
4.能够在派生类中使用构造函数和析构函数 5.学习虚基类在解决二义性问题中的作用。
6.熟悉多态分类,理解静态联编和动态联编概念。 7.掌握运算符重载方法。
8.理解虚函数、纯虚函数和抽象类概念。 9.掌握用抽象类和多态性实现编程的方法。 【实验内容】
1.分析程序,写出下列程序的运行结果: (1) #include
class Base {
private: int base_priv_dat; protected: int base_prot_dat; public: void base_show(); };
class Derived:public Base {
private: int derived_priv_dat; public: void derived_show(); };
void Base::base_show() { base_priv_dat=1; //基类函数可以操纵私有和保护型基类数据 base_prot_dat=2; cout<<\ <<\}
void Derived::derived_show() { derived_priv_dat=3; base_prot_dat=4; //派生函数可以处理保护型基类数据,但不能处理私有基类数据 cout<<\ <<\ base_show(); //派生函数可以调用公有基类函数
}
int main() { Derived d_obj; d_obj.base_show(); //可用派生对象调用基类函数 d_obj.derived_show(); return(0); }
(2) #include
#include
public: Person(const char* s) //带参数的构造函数 { name=new char[strlen(s)+1]; strcpy(name,s); } ~Person(){delete []name;} //析构函数做清理工作 char *GetName(){return name;} protected: char *name; };
class Student:public Person { char *major; public: Student(const char * s,const char *m):Person(s) //派生类构造函数 {major=new char[strlen(m)+1];strcpy(major,m);} ~Student(){delete[] major;} //派生类析构函数 char *GetMajor(){return major;} };
int main() { Student stu(\ cout<<\ < 2.编译运行下列程序,分析出现编译错误的原因,并给出解决办法。 #include protected: int a; public: Base(){a=30;} }; class B1:public Base { public: B1(){cout<<\}; class B2:public Base { public: B2(){cout<<\}; class Derived:public B2,public B1 { public: Derived(){cout<<\}; int main() { Derived d; return(0); } 3.开发一个简单的大学人员管理程序,该程序可以管理大学的一些基本人员:学生(student)、教师(teacher)、教授(professor)。首先设计一个虚基类person。通过该类保存人员的最基本信息:姓名(name)、年龄(age)和性别(sex)。然后使用该类派生出学生类student和教师类teacher,在其中添加各自的特性,如在student类中添加如下信息:专业(speciality),在teacher类中添加院系(department)等。还有部分教师在工作的同时在职修读学位,因此同时具有教师和学生双重身份,所以由student类和teacher类再次派生出stuTeacher类。为每个类定义一个输出函数print(),输出该类相关信息。 4.用运算符重载设计有理分数类,实现+、-、*、/等操作。 提示: 创建一个有理分数类Rational,有两个数据成员,一个构造函数,四个运算符重载函数,一个显示函数和一个约简函数。其中数据成员有分子numerator和分母denominator,构造函数可以避免分母为0,对不是约化型的分数进行约化。显示函数显示计算结果。约简函数对分数进行化简。 5.用运算符重载设计复数类,实现复数的+、-、*、/运算。 6.某学校对教师每月工资的计算规定如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元。副教授的固定工资为3000元,每个课时补贴30元。讲师的固定工资为2000元,每个课时补贴20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干个教师的月工资。 注:4、5选做一题。 【思考题】 1.组合与继承的区别是什么? 2.公有继承、保护继承和私有继承分别在什么情况下使用? 3.什么是虚基类?有何作用? 4.静态联编和动态联编有什么区别? 5.简述空的虚函数与纯虚函数的区别? 6.简述抽象类和具体类的区别?
正在阅读:
实验四 类的继承与多态实验12-17
座右铭的启示作文700字06-25
总承包工程施工合同05-29
城城传奇任务攻略文字版09-16
毕业论文答辩稿范文03-08
因为爱过短文散文03-30
2侵权责任法归责原则汇总11-10
机车配件04-28
人间真情350字,3篇02-15
运动会方队解说词04-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 多态
- 继承
- 办理土地使用权抵押贷款的流程是什么
- 德林COD 试剂配制
- 城市地理学试题与答案2007.1.5 - 图文
- 禅城区11月X科化学综合练习题
- 公安管理学专业自学考试本科毕业论文撰写规范
- 考研考前心理调节如何缓解考前紧张情绪
- 电视节目策划学 知识点总结
- 《绩效管理》复习题
- 2014年河南高考语文试卷及答案
- 密码学试卷1
- 江西理工大学大学物理光的干涉习题册答案
- 案例分析练习题
- 2018电学复习--电功率(能力提升)
- 8年运政考试及答案
- 建筑经济与企业管理资料
- 人教版六年级上册数学《分数乘除法应用题专题》
- 像风一样的男人 - 心情随笔精品推荐版
- 西师版小学数学四年级上册第五单元练习题
- 分生实验报告 目的基因与载体连接、 感受态制备及转化
- 关于举行小学语文复习经验交流研讨会活动的通知