实验5:继承与派生.doc_第1页
实验5:继承与派生.doc_第2页
实验5:继承与派生.doc_第3页
实验5:继承与派生.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验项目:继承与派生实验目的:1.学习定义和使用类的继承关系,定义派生类2.熟悉不同继承方式下对基类成员的访问控制实验任务:1.定义一个基类Animal,有私有整形成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?2.定义一个基类BaseClass,有整形成员变量Number,构造其派生类,观察其构造函数和析构函数的执行情况。3.定义一个车类(vehicle)基类,有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(Seatnum)等属性。,在继承和过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?变成试试看。实验步骤:1.编写程序定义Animal,成员变量age定义为私有的。构造其派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现错误提示:程序名lab5_1.cpp2.编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。程序名lab5_2.cpp3.用debug功能跟踪程序lab5_2.cpp的执行过程,观察基类和派生类的构造函数和析构函数的的执行过程。车(Vehicle)MaxSpeed、WeightRunStop自行车(bicycle)Height函数汽车(motorcar)Seatnum函数摩托车(motorcycle)4.编写程序定义车类(vehicle),由此派生出自行车(bicycle)类、汽车(motorcar),把vehicle设置为虚基类。再从bicycle和motorcar派生出摩托车(motorcycle)类,在main()函数中测试这个类。程序名lab5_3.cpp。编译成功后把vehicle设置成非虚基类,在编译一次,此时系统报错,无法编译成功。原因是若不把vehicle设置为虚基类,会产生二义性错误。摩托车(motorcycle)实验结果:1.error C2248:agecannot access private member declared in class Animal2. 构造基类对象! 构造派生类对象! 析构派生类对象!析构基类对象!源代码:1. #include using namespace std;class Animalpublic:int age;public: Animal();Animal();class Dog : private Animal public:Dog();Dog();void SetAge(int n) age = n;int main()Dog a;a.SetAge(10);2. #include using namespace std;class BaseClasspublic: BaseClass() cout 构造基类对象! endl;BaseClass() cout 析构基类对象! endl;class DerivedClass : public BaseClasspublic: DerivedClass() cout 构造派生类对象! endl;DerivedClass() cout 析构派生类对象! endl;int main() DerivedClass d;3. #include using namespace std;class vehicleprivate:int MaxSpeed;int Weight;public: vehicle()MaxSpeed=0; Weight=0;vehicle();void Run() cout Now it is running! endl; void Stop() cout Now it has stopped! endl; ;class bicycle : virtual public vehicle private:int Height;public:bicycle();bicycle();class motorcar : virtual public vehicle private:int SeatNum;public:motorcar();motorcar();class motorcycle : public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论