面向对象派生类和继承实验三.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福建农林大学计算机与信息学院实验报告 系: 计算机 专业: 计算机科学与技术 年级: 2009级 姓名: 学号:    实验室号 田507、513、514 计算机号   实验时间:2011年10月25日、11月1日指导教师签字: 成绩: 实验3派生类与继承 一、实验目的和要求 (1)掌握派生类的声明与定义方法,进一步理解类的继承的概念,能够定义和使用类的继承关系。 (2)熟悉公有派生和私有派生的访问特性。 (3)了解虚基类在解决二义性问题中的作用。 二、实验内容和原理 (1)定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。 (2)定义一个基类BaseClass,有整型成员变量Number ,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3)定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。 (4)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、id(身份证号)等等。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数。 从people(人员)类派生出student(学生)类,添加属性:班号char classNo[7];从people类派生出teacher(教师)类,添加属性:职务char principalship[11]、部门char department[21]。从student类派生出graduate(研究生)类,添加属性:专业char subject[21]、导师teacher adviser;从graduate类和teacher类派出TA(助教生)类,注意虚基类的使用。重载相应的成员函数,测试这些类。 三、实验环境 联想计算机,Windows XP操作系统,Visual C++ 6.0 四、算法描述及实验步骤 (1)编写源程序。 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。 (4)运行程序,分析结果。 (5)将调试好的程序保存在自己的用户目录中,文件名自定。 五、调试过程 1. 3. 4 六、实验结果 1. 2. 3. 4. 附录: 1.#includeiostream using namespace std; class Animal { public: int age; }; class dog:public Animal { public: void SetAge(int n) { age=n; } void display(); }; void dog::display() { coutthis dog is age years.endl; } int main() { dog d; d.SetAge(5); d.display(); return 0; } 2. #includeiostream using namespace std; class BaseClass { public: BaseClass(int i) { Number=i; coutNumber=Numberendl; } ~BaseClass() { coutdestructing BaseClassendl; } private: int Number; }; class DerivedClass :public BaseClass { public: DerivedClass(int i,int j); ~DerivedClass(); private: int b; }; DerivedClass::DerivedCl

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档