欢迎来到天天文库
浏览记录
ID:31643279
大小:107.95 KB
页数:7页
时间:2019-01-16
《c++上机实验报告实验五》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五实验目的1.学习定义和使用类的继承关系,定义派生类2.熟悉不同继承方式下对基类成员的访问控制3.学习利用虚基类解决二义性问题实验要求1.定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员惭数SetAge(intn)屮直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程尝试。2.定义一个基类BaseClass,W整型变量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(intn)中直接对age赋值吋,会11!现
3、类似以下的错误提示:errorC2248:'age':cannotaccessprivatememberdeclaredinclass'Animal'errorC2248:'age':cannotaccessprivatememberdeclaredinclass'Animal'把age改为公有成员变量后重新编译就可以了。程序名:lab7_l.cpp源代码:#includeusingnamespacestd;classAnimal{public:Animal(){}~Animal(){}intage;};classdog:publ
4、icAnimal{public:dog(){}~dog(){}〃定义Animal类//age设为公有成员〃定义派生类dog公有继承Animal类intSetAge(intn){age=n;}};intmain(){doga;a.SetAge(3);return0;运行结果:2345678910H1112131415161718192021222324^includeusingnamespacestdclassAnimalfpublic:Aninal(){}'Animal(){}priuate:i吐age;•f9classdogp
5、ublicAnimalf€public:dog){}#dog){}intSetAgeintnagen;IJ•99intmain)f€行倍息2deBlockaInmemberfunction*intdog::SetAge(in:deBlccks10error:*intAnimal::age*isprivate3deBlocka...19error:withinthiscontextBuild失败:2error(s)r0warning(s)(doga123456789101112131415161718192021222324ttinclude<
6、iostrean>usingnamespacestdclassAnimalpublic:Animal圉intageclassdogpublicAnimalpublic:dogintSetAgeintnage=nintmain()dogaa.SetAge(3);-ogs&others4Code::BlocksXA搜索结果xZCcccProcessterminatedv±thstatus0(0minute60error(s)z0vamlng(s)(0minute(s),1se1.编写程序定义一个基类BaseClass,构造其派生类DerivedClass
7、,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名:lab7_2.cpp源程序:#includeusingnamespacestd;classBaseClass//基类BaseClass{public:BaseClass(){〃构造函数cout«HBaseClass类构造函数执行!"«endl;}~BaseClass(){〃析构函数cout«nBaseClass类析构函数执行!u«endl;}};classDerivedClass:publicBaseClass〃派生类Derived公有继承基
8、类BaseClasspublic:〃派牛类构造函数DerivedClass(){cout«nDerivedC
此文档下载收益归作者所有