第三次上机报告

上传人:鲁** 文档编号:491317422 上传时间:2023-08-18 格式:DOCX 页数:9 大小:81.28KB
返回 下载 相关 举报
第三次上机报告_第1页
第1页 / 共9页
第三次上机报告_第2页
第2页 / 共9页
第三次上机报告_第3页
第3页 / 共9页
第三次上机报告_第4页
第4页 / 共9页
第三次上机报告_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《第三次上机报告》由会员分享,可在线阅读,更多相关《第三次上机报告(9页珍藏版)》请在金锄头文库上搜索。

1、实验三学号:姓名:班级:软件工程141继承与派生(4学时)一、实验目的1 学习定义和使用类的继承关系,定义派生类。2 熟悉不同继承方式下对基类成员的访问控制。3学习利用虚基类解决二义性问题。二、实验任务1 .定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(intn)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗编程试试看。2 .定义一个基类BaseClass有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。3 .分析并调试以下程序运行结果,并和实际运行结果相对照。#

2、includeusingnamespacestd;classBaseintx;public:Base(inti)x=i;coutConstuctorofBaseendl;Base()coutDestuctorofBaseendl;voidshow()coutx=xendl;classDerived:publicBaseBased;public:Derived(inti):Base(i),d(i)coutConstuctorofDerivedendl;Derived()coutDestuctorofDerived:prror49?:cinnutoezkiwinhprin匚】口,与G:3.iscp

3、p(6:0dec1JrJttonof,叫.1.cpp(1l!:error1age*:cannolLaccessprivatenemberdleclaredinclassnniiwL*.Cpp(A:事”rieclnF*s将age设置为公有成员时,能正常运行代码:#includeusingnamespacestd;classAnimalpublic:intage;classdog:publicAnimalpublic:intsetAge(intn)age=n;returnage;intmain()dogd;cout(3)endl;return0;运行结果为:2 .执行情况为:(1)基类BaseCl

4、ass的构造函数;(2)派生类DerivedClass的构造函数;(3)派生类DerivedClass的析取函数;(4)基类BaseClass的析取函数;代码:#includeusingnamespacestd;classBaseClasspublic:BaseClass()Number=90;coutconstructorofBaseClass!endl;BaseClass()coutdestructorofBaseClass!endl;private:intNumber;;classDerivedClass:publicBaseClasspublic:DerivedClass()coutc

5、onstrctorofDerivedClass!endl;DerivedClass()coutdestructorofDerivedClass!endl;intmain()DerivedClassder;return0;执行结果:3 .分析:(1)执行Base的构造函数;(2)执行Derived的对象obj的Base类构造函数,并将obj(5)中参数5赋值给X及Derived类构造函数;Base析取函数,最后执行与第一步相对应的Base的析取函数;(3)执行Derived类的对象obj的Derived的析取函数、在执行Derived类的obj的执行结果:CumttuccorofCans*tij

6、ctnr-o:fGonhstucorofM=Sa”4 .虚基类:使得在继承间接共同基类时只保留一份成员。若不使用虚基类,在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。代码:#includeusingnamespacestd;classvehiclepublic:vehicle(floatm,floatw)MaxSpeed=m;Weight=w;vehicle()voidrun()coutrunningofvehicle!endl;voidstop()coutstoppingofvehicle!endl;floatMaxSpeed;floatWeight;classbicycle:

7、virtualpublicvehiclepublic:bicycle(floatm,floatw,floath):vehicle(m,w)Height=h;bicycle()floatHeight;classmotorcar:virtualpublicvehiclepublic:motorcar(floatm,floatw,ints):vehicle(m,w)SeatNum=s;motorcar()intSeatNum;;classmotorcycle:publicbicycle,publicmotorcarpublic:motorcycle(floatm,floatw,floath,ints

8、):vehicle(m,w),bicycle(m,w,h),motorcar(m,w,s)motorcycle()voiddisplay。coutMaxSpeed=MaxSpeedendl;coutWeight=Weightendl;coutHeight=Heightendl;coutSeatNum=SeatNumendl;voidmain()floatm,w,h;ints;coutm;coutw;couth;couts;motorcyclemoc(m,w,h,s);();in put haxSpaed=SG , 7 height =70.8 Height-179.5 pvdit MixS p

9、w*d-?S6 - 7 府珀趾尸9 Height=179.5 s mu二,5 B卧日&零 any 限Hy to cont IntiH运行结果LI5 .代码:#include#includeusingnamespacestd;classPeoplepublic:People(stringn,strings,stringb,stringi)number=n;sex=s;birthday=b;id=i;People()protected:stringnumber;stringsex;stringbirthday;stringid;classStudent:virtualpublicPeoplepub

10、lic:Student(stringn,strings,stringb,stringi,stringc):People(n,s,b,i)classNo=c;Student()protected:stringclassNo;classTeacher:virtualpublicPeoplepublic:Teacher(stringn,strings,stringb,stringi,stringp,stringd):People(n,s,b,i)principalship=p;department=d;Teacher()protected:stringprincipalship;/职务stringd

11、epartment;/部门;classGraduate:publicStudentpublic:Graduate(stringn,strings,stringb,stringi,stringc,stringsu,stringt):People(n,s,b,i),Student(n,s,b,i,c)subject=su;teacher_adviser=t;Graduate()protected:stringsubject;/专业stringteacher_adviser;/导师;classTA:publicGraduate,publicTeacherpublic:TA(stringn,strings,stringb,stringi,stringc,stringsu,stringt,stringp,stringd):People(n,s,b,i),Graduate(n,s,b,i,c,su,t),Teacher(n,s,b,i,p,d)TA()voiddisplay()cout编号:numberend

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号