![C++上机实验报告5--精选文档_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/3d68b56a-b620-4ef9-923f-714bac5aeed1/3d68b56a-b620-4ef9-923f-714bac5aeed11.gif)
![C++上机实验报告5--精选文档_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/13/3d68b56a-b620-4ef9-923f-714bac5aeed1/3d68b56a-b620-4ef9-923f-714bac5aeed12.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C+程序实验报告实验五 继承与派生实验目的 1.学习定义和使用类的继承关系,定义派生类 2.熟悉不同继承方式下对基类成员的访问控制 3.学习利用虚基类解决二义性问题 实验要求 1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。 2.定义一个基类BaseClass,有整型变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。3.定义一个车(vehicle)基类,具有Maxspeed、Weight等成员,Run
2、、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNun)等属性。从bicycle和motorcar派生出摩托车(motorbicycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程尝试。实验内容及实验步骤 1.编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现类似以下的错误提示: error C2248
3、 : age : cannot access private member declared in class Animal error C2248 : age : cannot access private member declared in class Animal 把age改为公有成员变量后重新编译就可以了。程序名:lab7_1.cpp。 错误代码:#includeusing namespace std;class Animalprivate:int age;public:Animal();class dog:public Animalpublic:void SetAge(int n)
4、age=n;int main()dog one;one.SetAge(23);return 0;运行结果:正确代码:#includeusing namespace std;class Animalpublic:int age;public:Animal();class dog:public Animalpublic:void SetAge(int n)age=n;int main()dog one;one.SetAge(23);return 0;运行结果:2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数
5、和析构函数的执行情况。程序名:lab7_2.cpp。 源代码:#includeusing namespace std;class BaseClassprivate:int a;public:BaseClass()cout基类构造函数调用endl;BaseClass()cout基类析构函数调用endl;class DerivedClass:public BaseClassprivate:int b;public:DerivedClass()cout派生类构造函数调用endl;DerivedClass()cout派生类析构函数调用endl;int main()DerivedClass one; r
6、eturn 0;运行结果:3.用debug功能跟踪程序lab7_2的执行过程,观察基类和派生类的构造函数和析构函数的执行情况。 DEBUG:4.编写程序定义一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名:lab7_3.cpp。 编译成功后,把vehicle设置为非虚基类,再编译一次,此时系统报错,无法编译成功。这是因为若不把vehicle设置为虚基类,会出现二义性错误,程序不能成功编译。源代码:#i
7、ncludeusing namespace std;class Vehiclepublic:Vehicle();int a;void set()coutVehicle调用endl;class Mortorcar:virtual public Vehiclepublic:Mortorcar();int b;void set()coutMortorcar调用endl;class Bicycle:virtual public Vehiclepublic:Bicycle();int c;void set()coutBicycle调用endl;class Mortorcycle:public Mortorcar,public Bicyclepublic:Mortorcycle();int d;void set()coutMortorcycle调用endl;int main()Mortorcycle one;one.a =1;one.b=2;one.set();return 0;运行结果:错误情况:思考题 1. 如何在已有的类的基础上设计新的类?派生一个新的类。2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版地理八年级下册6.2《白山黑水-东北三省》听课评课记录1
- 苏科版九年级数学听评课记录:第50讲 二次函数y
- 七年级下听评课记录数学
- 新版湘教版秋八年级数学上册第四章一元一次不等式组课题一元一次不等式的应用听评课记录
- 申请在家自学的协议书(2篇)
- 电价变更合同范本(2篇)
- 苏科版数学七年级下册听评课记录8.1同底数幂的乘法
- 湘教版数学九年级下册2.5《直线与圆的位置关系》听评课记录3
- 一年级上册数学听评课记录《3.8 小鸡吃食 》 北师大版
- 2025年锡焊专用设备合作协议书
- 小学数学三年级下册第八单元《数学广角-搭配(二)》大单元集体备课整体设计
- (高清版)TDT 1031.6-2011 土地复垦方案编制规程 第6部分:建设项目
- 2024年江苏省高中学业水平测试生物试卷
- 露天采场危险有害因素辨识
- 苏教版一年级上、下册劳动与技术教案
- 七上-动点、动角问题12道好题-解析
- 山东曲阜的孔庙之旅
- 一到六年级语文词语表人教版
- 中煤集团综合管理信息系统运维服务解决方案-V3.0
- 直播营销与运营(第2版)全套教学课件
- 高二英语阅读理解30篇
评论
0/150
提交评论