下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三:面向对象(c+)的程序设计一、实验目的本实验通过编写简单的c+ 程序,使你能:l 了解c+面向对象程序设计的基本特点l 学习c+中类的定义、继承与派生l 学习使用虚函数实现多态性二、背景知识1、类的定义class private: ; protected: ; public: ;成员函数的实现:返回类型 类名:成员函数名(参数说明) 函数体2、对象为了使用类,还必须说明类的对象。在定义类时,系统是不会给类分配存储空间的,只有定义类对象时才会给对象分配相应的内存空间。定义对象的格式如下: ;3、继承继承是面向对象程序设计的基本特征之一,通过c+语言中的继承机制,一个新类既可以共享另一个类
2、的操作和数据,也可以在新类中定义已有类中没有的成员,这样就能大大的节省程序开发的时间和资源。 称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。派生类的定义格式:class :public: /派生类新定义成员members;members;members;4、虚基类如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性。 picturewindowwindow的成员由editwindow和picturewindow共享引进虚基类的真正目的是为了解决二义性问题。当基类被继承时,在基类的访问控制保
3、留字的前面加上保留字virtual来定义。5、多态多态性是面向对象程序设计的重要特征之一。所谓多态性是指当不同的对象收到相同的消息时,产生不同的动作。c+的多态性具体体现在运行和编译两个方面,在程序运行时的多态性通过继承和虚函数来体现,而在程序编译时多态性体现在函数和运算符的重载上。 派生类指针可以用一个指向基类的指针指向其公有派生类的对象。但却不能用指向派生类的指针指向一个基类对象。希望用基类指针访问其公有派生类的特定成员,必须将基类指针用显式类型转换为派生类指针。例如(b_class *)p)- show_phone();一个指向基类的指针可用来指向从基类公有派生的任何对象,这一事实非常重
4、要,它是c+实现运行时多态的关键途径。 虚函数在c+语言中,是通过将一个函数定义成虚函数来实现运行时的多态的。虚函数是在基类中冠以关键字 virtual 的成员函数。它提供了一种接口界面。虚函数可以在一个或多个派生类中被重定义。 三、实验准备l 阅读课件和教科书及相关资料,学习c+面向对象程序设计的基本方法和特点:继承、重载、多态等。l 准备好vc+开发工具,也可以使用其它能够开发c+的编程工具四、实验要求与步骤1. 进入vc+,新建一个c+源程序文件 提示:c+程序中,使用预编译命令 #include2. 定义一个车(vehicle)基类,具有maxspeed、weight等成员变量,run
5、、stop成员函数,如下所示。void run() cout a vehicle is running! endl; void stop() cout a vehicle has stopped! endl; 3. 由vehicle类派生出自行车(bicycle)类和汽车(motorcar)类。自行车(bicycle)类有高度(height)等属性,汽车(motorcar)类有座位数(seatnum)等属性。4. 从bicycle和motorcar类派生出摩托车(motorcycle)类。5. 可如下编写main()函数,测试类的继承关系。void main()motorcycle a; a.run(); a.stop();6. 编译、调试、运行程序。注意:在派生过程中,一定要把vehicle设置为虚基类,否则编译出错,请考虑为什么?7. 修改上面的程序,在bicycle、motorcar和motorcycle类中都定义run和stop成员函数,例如bicycle类中:void run() cout a bicycle is running! endl; void stop() cout a bicycle has stopped! run();ptr-stop();ptr = &d; ptr-run();ptr-stop();9. 在vehicle类的定义中,将r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《中国艾滋病防治》课件
- 大一新生规划书
- 电气用电安全培训
- 年产xxx矿产铝冶炼项目建议书
- 踏梯子项目可行性研究报告
- 年产xx智能浴缸项目可行性研究报告(项目计划)
- 压刀条项目可行性研究报告
- 胡超销售培训
- 2022-2023学年广东省深圳市福田区五年级(上)期末英语试卷
- 小班上学期科学教案《水果沉浮》
- 骨科DRG付费方式下编码临床应用培训(骨科)
- 12J4-2 《专用门窗》标准图集
- GB/T 5206-2015色漆和清漆术语和定义
- GB/T 3091-2015低压流体输送用焊接钢管
- GB/T 25249-2010氨基醇酸树脂涂料
- 企业合规管理培训课件讲义
- 精细化管理指引解读
- 外研版五年级英语上册期末复习要点
- 手机摄影入门教程
- 激光切割工艺手册(切割工艺+解决方法)
- 老年髋部骨折患者围术期麻醉管理课件
评论
0/150
提交评论