- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验5派生与继承
实验5 派生与继承
实验目的
理解继承思想,掌握继承的语法。
体会不同继承方式下派生类对基类成员的访问权限
掌握派生类中构造函数和析构函数的定义形式,理解其与基类构造函数和析构函数的关系与调用;
掌握派生类与基类同名函数的调用方法
理解继承体系中的赋值兼容性原则
掌握多继承的语法形式,理解虚继承关系。
实验内容
设计一个学生和教师类,学生数据有编号、姓名、班级和成绩;教师数据有编号、姓名、职称和部门;要求:运用继承的思想实现相关功能:对学生和教师的数据进行输入和显示,类中包括各种构造函数 ,思考如何在派生类的构造函数中初始化基类的成员。
设计球类,用组合及继承包含点,在各个类中添加构造函数和show方法,并能计算球的表面积和体积。
1)按组合关系构造一个球类Ball,包含一个空间中的点(x,y,z)。
2)按继承构造一个球类Sphere,构成三级单继承关系。
3) 按组合和继承关系构造一个非均匀的球体类,其中包括一个几何中心和物理重心
编写一个程序,实现字符串的相关操作。要求:
在已有简单串类myString的基础上派生字符串类String1,类中包含返回字符串长度功能,并能使用运算符实现字符串连接与比较(不用库函数);
设计一个具有编辑功能的串类String2,它从String1类派生而来。成员函数能够在在字符串指定位置处实现如下操作:插入字符串、替换和删除某个字符, 并能查找子串。
设计UML图见下
myString +myString (char *= 0)
+myString(const myString )
+ ~ myString ( )
+set(char *) :void
+getStr(): char*
+print(): void # pStr :char *
String1 +getLen(): int
+opertor+( String1): String1
+opertor=( String1): String1
+operator( String1): bool # len : int String2 +insert(char*): void
+replace(char ): void
+delete( char ): bool
+find( const char*):int
综合性的实验,设计数组类族。要求编写的程序涉及到C++的许多知识点,如类的定义,动态分配内存,构造函数,派生,虚基类等。实验内容给出的是一个完整的程序,4个题目实际是类等级。同学也可以在此基础上发挥增加新的内容。
定义一个基类MyArray,基类中可以存放一组数组。编写构造函数,析构函数及其它函数,实现动态分配内存,释放内存和数据输入输出等功能。并进行调试。
定义一个类averarray继承自myarray,在类中求数组的平均值,并输出。进行调试。
定义一个类revarray继承自 myarray, 使数组按反序存放,并输出。进行调试。
定义一个类Safearray继承自averarray和revarray,并保证访问数组不会越界。在继承过程中声明为虚基类,体会虚基类在解决二义性中的问题中的作用。调试中可以试一试不用虚基类出现的问题。
5. 编写一个程序实现小型公司的工资管理。测试各个类,输出不同人员的工资。
该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。要求存储这些人的编号、姓名和月工资,计算月工资并显示全部信息。
月工资计算办法是:经理拿固定月薪8000元,兼职技术人员按每小时100元领取月薪,销售员按当月销售额的4%提成,销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的5‰。
三.问答题(提交书面作业)
1.阅读程序,回答问题
#include iostream
using namespace std;
class A
{
public:
void f1();
A() {i1=10;j1=11;}
protected:
int j1;
private:
int i1;
};
class B:private A
{
public:
void f2();
B() {i2=20;j2=21;}
protected:
int j2;
private:
int i2;
};
class C: public B
{
public:
void f3();
C() {i3=30;j3=31;}
protected:
int j3;
private:
int i3;
};
回答下列问题:
派生类B中成员函数f2()能否访问基类A中的成员f1()、i1和j1?
派生类B的对象b能否访问基类A中的
您可能关注的文档
最近下载
- 【作风建设论述摘编】2025关于加强党的作风建设论述摘编(七)PPT.pptx VIP
- 水平四足球大单元教案.docx VIP
- 义和团运动和八国联军侵华课件-2025-2026学年统编版(2024)历史八年级上册.pptx VIP
- 手术讲解模板:双侧牵张成骨下颌骨前移术.ppt
- 羊的胚胎移植(15分钟).ppt VIP
- 【作风建设论述摘编】2025关于加强党的作风建设论述摘编(三)PPT.ppt VIP
- 中西医学的本质特点及其模式.ppt
- 甲午中日战争与列强瓜分中国狂潮课件++2025-2026学年统编版八年级历史上册.pptx VIP
- SY75C 9三一履带液压挖掘机.pdf VIP
- 工作面采煤设计方案.doc VIP
文档评论(0)