首页 实验4 派生与继承

实验4 派生与继承

举报
开通vip

实验4 派生与继承实验4派生与继承实验目的:理解类的继承的概念,能够定义和使用类的继承关系。掌握派生类的声明与定义方法。熟悉公有派生类和私有派生类的访问特性。学习虚基类在解决二义性问题中的作用。实验内容:编程实现:有一个汽车类Vehicle,它具有一个需传递参数的构造函数,还拥有保护数据成员车轮个数wheels和车重weight。小汽车类Car是Vehicle的私有派生类,其中包含载人数passengerLoad。卡车类Truck是Vehicle的私有派生类,其中包含载人数passengerLoad和载重量payload。每个类都有...

实验4  派生与继承
实验4派生与继承实验目的:理解类的继承的概念,能够定义和使用类的继承关系。掌握派生类的声明与定义方法。熟悉公有派生类和私有派生类的访问特性。学习虚基类在解决二义性问题中的作用。实验内容:编程实现:有一个汽车类Vehicle,它具有一个需传递参数的构造函数,还拥有保护数据成员车轮个数wheels和车重weight。小汽车类Car是Vehicle的私有派生类,其中包含载人数passengerLoad。卡车类Truck是Vehicle的私有派生类,其中包含载人数passengerLoad和载重量payload。每个类都有相关数据的输出函数Show()。在如下界面中显示信息控制台参考程序:#include<iostream>//编译预处理命令usingnamespacestd;//使用命名空间std//声明汽车类classVehicle{protected://保护成员intwheel;//车轮个数doubleweight;//车重public://公有函数Vehicle(intwh=4,doublewt=1000):wheel(wh),weight(wt){}voidShow()const//输出相关信息{cout<<"车轮个数:"<<wheel<<endl;cout<<"车重:"<<weight<<"公斤"<<endl;}};//声明小汽车类classCar:privateVehicle{private://私有成员intpassengerLoad;//载人数public://公有函数Car(intwh=4,doublewt=1000,intp=5):Vehicle(wh,wt),passengerLoad(p){}//构造函数voidShow()const//输出相关信息{Vehicle::Show();//调用基类的Show()cout<<"载人数:"<<passengerLoad<<endl;}};//声明卡车类classTruck:privateVehicle{private://私有成员intpassengerLoad;//载人数doublepayload;//载重量public://公有函数Truck(intwh=4,doublewt=1000,intp=5,doublepay=2000):Vehicle(wh,wt),passengerLoad(p),payload(pay){}voidShow()const//输出相关信息{Vehicle::Show();//调用基类的Show()cout<<"载人数:"<<passengerLoad<<endl;cout<<"载重量:"<<payload<<"公斤"<<endl;}};intmain()//主函数main(){Vehiclev;//定义对象cout<<"汽车信息:"<<endl;//输出提示v.Show();//输出信息Carc;//定义对象cout<<endl<<"小汽车信息:"<<endl;//输出提示c.Show();//输出信息Truckt;//定义对象cout<<endl<<"卡车车信息:"<<endl;//输出提示t.Show();//输出信息system("PAUSE");//调用库函数system(),输出系统提示信息return0;//返回值,返回操作系统}MFC参考程序:基于MFC对话框应用程序实现。1、界面设计2、控件变量定义3、在项目中创建“Vehicle.h”文件;Vehicle.h内容://Vehicle.h:interfacefortheVehicleclass.////////////////////////////////////////////////////////////////////////#if!defined(AFX_VEHICLE_H__4B9D36AF_8614_4103_9CA0_5B271F737D16__INCLUDED_)#defineAFX_VEHICLE_H__4B9D36AF_8614_4103_9CA0_5B271F737D16__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000classVehicle{protected://保护成员intwheel;//车轮个数doubleweight;//车重public://公有函数Vehicle(intwh=4,doublewt=1000):wheel(wh),weight(wt){}voidShow(int*wh1,double*we1)const//输出相关信息{*wh1=wheel;//车轮个数*we1=weight;//车重,公斤}};//声明小汽车类classCar:privateVehicle{private://私有成员intpassengerLoad;//载人数public://公有函数Car(intwh=4,doublewt=1000,intp=5):Vehicle(wh,wt),passengerLoad(p){}//构造函数voidShow(int*wh1,double*we1,int*pr1)const//输出相关信息{intwh2;doublewe2;Vehicle::Show(&wh2,&we2);//调用基类的Show()*wh1=wh2;*we1=we2;*pr1=passengerLoad;//载人数}};//声明卡车类classTruck:privateVehicle{private://私有成员intpassengerLoad;//载人数doublepayload;//载重量public://公有函数Truck(intwh=4,doublewt=1000,intp=5,doublepay=2000):Vehicle(wh,wt),passengerLoad(p),payload(pay){}voidShow(int*wh1,double*we1,int*pr1,double*pa1)const//输出相关信息{intwh2;doublewe2;Vehicle::Show(&wh2,&we2);//调用基类的Show()*wh1=wh2;*we1=we2;*pr1=passengerLoad;//载人数*pa1=payload;//载重量}};#endif//!defined(AFX_VEHICLE_H__4B9D36AF_8614_4103_9CA0_5B271F737D16__INCLUDED_)在“*Dlg.cpp”中引用“Vehicle.h”4、加入单击按钮时的事件响应代码voidCShiYan4Dlg::OnVehicle(){//TODO:AddyourcontrolnotificationhandlercodehereVehiclev;//定义对象intn1;doublen2;v.Show(&n1,&n2);//输出信息m_ed5="汽车信息:";m_ed1.Format("%d",n1);m_ed2.Format("%.f",n2);m_ed3="";m_ed4="";UpdateData(FALSE);}voidCShiYan4Dlg::OnCar(){//TODO:AddyourcontrolnotificationhandlercodehereCarc;//定义对象intn1,n3;doublen2;c.Show(&n1,&n2,&n3);//输出信息m_ed5="小汽车信息:";m_ed1.Format("%d",n1);m_ed2.Format("%.f",n2);m_ed3.Format("%d",n3);m_ed4="";UpdateData(FALSE);}voidCShiYan4Dlg::OnTruck(){//TODO:AddyourcontrolnotificationhandlercodehereTruckt;//定义对象intn1,n3;doublen2,n4;t.Show(&n1,&n2,&n3,&n4);//输出信息m_ed5="卡车车信息:";m_ed1.Format("%d",n1);m_ed2.Format("%.f",n2);m_ed3.Format("%d",n3);m_ed4.Format("%.f",n4);UpdateData(FALSE);}5、编译运行程序
本文档为【实验4 派生与继承】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_237192
暂无简介~
格式:doc
大小:149KB
软件:Word
页数:9
分类:
上传时间:2017-09-04
浏览量:32