C++语言程序设计实验答案-继承与派生

上传人:博****1 文档编号:544074386 上传时间:2024-02-02 格式:DOC 页数:16 大小:223KB
返回 下载 相关 举报
C++语言程序设计实验答案-继承与派生_第1页
第1页 / 共16页
C++语言程序设计实验答案-继承与派生_第2页
第2页 / 共16页
C++语言程序设计实验答案-继承与派生_第3页
第3页 / 共16页
C++语言程序设计实验答案-继承与派生_第4页
第4页 / 共16页
C++语言程序设计实验答案-继承与派生_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C++语言程序设计实验答案-继承与派生》由会员分享,可在线阅读,更多相关《C++语言程序设计实验答案-继承与派生(16页珍藏版)》请在金锄头文库上搜索。

1、实验07 继承与派生(4学时)(第7章 继承与派生)一、实验目的(1)学习声明和使用类的继承关系,声明派生类。() 熟悉不同继承方式下对基类成员的访问控制。() 学习运用虚基类解决二义性问题。二、实验任务71 声明一种基类Animal。有私有整型成员变量ae,构造其派生类dog,在其成员函数etge(int n)中直接给e赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。7_2声明一种基类Bslass。有整型成员变量Numb,构造其派生类rielass,观测构造函数和析构函数的执行状况。73 声明一种车(vhicle)基类。具有MaxSp、ight等成员变量,Run、

2、Sp等成员函数,由此派生出自行车(icyl)类、汽车(moocar)类。自行车(bicyle)类有高度(Height)等属性,汽车(otocar)类有座位数(eatNu)等属性。从icyl和moa派生出摩托车(otcycle)类,在继承过程中,注意把veie设立为虚基类。如果不把vehile设立为虚基类,会有什么问题?编程试试看。7_ 以实验6中的Peop(人员)类为基类。派生出stun(学生)类,添加属性:班号har clsNo;派生出tear(教师)类,添加属性:职务cha rinpalp11、部门ar deamnt21。从tudnt类中派生出grduae(研究生)类,添加属性:专业cau

3、bject21、导师eaher sr;从adute类和teer类派生出TA(助教生)类,注意虚基类的使用。重载相应的成员函数,测试这些类。类之间的关系如图7-1所示。研究生 专业 导师 函数 日期 年 月 日 函数 助教博士生 教师 职务 部门 函数 学生 班号 函数 人员 姓名 编号 性别 出生日期 身份证号 函数 图7- 类图三、实验环节1(编程)声明基类Aial,成员变量a声明为私有的。构造派生类do,在其成员函数Setg(nt )中直接对ag赋值时,会浮现类似如下的错误提示:(注:在桌面创立一种文本文献,将输出框的内容复制到文本文献中,再复制到or文献中,不会浮现中文的乱码)用rivt

4、e时的成果:1- 已启动生成: 项目: cp,配备:Debui32-1生成启动时间为 -2-8 11:10:35。1IitialzuildStats:1正在创立“Debucp.unsuccsfulbil”,由于已指定“AlwaysCeae”。1Clopile: min.cp1f:rojctscpppai.cp(3): error C24:“Animal::age”:无法访问 pivte成员(在“Animl”类中声明)1 :projecsppppma.pp() :参见“Am::age”的声明1 :proctsppcpmi.pp() :参见“Ai”的声明1f:rojcscpppmicp(14):

5、ror C2248:“nima::e”:无法访问 pivae成员(在“nimal”类中声明)1 f:jectcppmai.cpp():参见“Anial:age”的声明 f:prctsppmn.cpp(5) :参见“Animl”的声明11生成失败。11已用时间:00:0328=生成: 成功 个,失败 个,最新 0个,跳过 个 =把ae改为公有变量后重新编译就可以了。程序名:lab71.pp。 程序及运营成果:/lb.cppilude ostremusig namspc s;css nimpriate: /privat时出错/public:/ubl和prtected对的int age;lass d

6、:lic nmalpblic:oid StAe(it)ae=n;inttAge() return ge;;vomain() do d; d.SetAge(3); coutge=.GeAge()- 已启动生成: 项目:cpp,配备: eu Wn32-1生成启动时间为 -2-181:10:35。1iiliBiltas:1 正在创立“ebgcp.uscessfulbld”,由于已指定“layseate”。ClCoile:1 man.p1f:ojctscppmai.cpp(3): errr C248: “Aim:a”: 无法访问 priate 成员(在“imal”类中声明) :roectppcppin

7、cpp(8) :参见“nml::a”的声明1 f:rojectscppcpain.cp(5) : 参见“Animl”的声明1f:rojetcppcppmain.pp(14):rrC28:“Aim:age”: 无法访问 private成员(在“imal”类中声明)1 :prjctcppmain.cp() : 参见“Anial::”的声明1 :pojctspppmain.c(5) :参见“Animl”的声明11生成失败。1已用时间00::3.2=生成: 成功 0 个,失败 个,最新 0 个,跳过0 个 =用publc时的成果:2(编程)声明一种基类sels,构造其派生类DeriveCass。在构造

8、函数和析构函数中用cot输出提示信息,观测构造函数和析构函数的执行状况。程序名:la7_2.cpp。参照的运营成果: 程序及运营成果:/lab72.cpp#cle otremuing aespae sd;clss BeCsspub:BasClass()cout构造了一种BeClass类的对象n; Baselas()cout析构了一种aCs类的对象edl;private:t Nu;lassDrivelass:pblic Bslspublic:DivClass()ct构造了一种DeriveCl类的对象endl; DrivCla()cou析构了一种eveCas类的对象.usinamesc std;c

9、l vhice/车类,作为基类proteted:int MxSd,Weiht;/最大速度,重量ublic:voRun()ct车vicl类开始运营!endl; oid top() out车eile类停止运营!enl;;clabyl:vitualpulivehic/自行车类:公有继承虚基类vehilepoteed:it ght;/高度;clamotoar:virtua pic vehicl/汽车类:公有继承虚基类eilerot:it SeaN;/座位数;csoryle:ublibicc,ubi mtorar/摩托车类:公有继承自行车类和汽车类pul:odtata(n s,itwt,ntht,nt s) axped=m; eigh=w; Higt=ht; SeaNms;;oid Sw()u最大速度:Mxp 重量:Wight 高度:Hght 座位数:SeNmen;vid ai()couti类型占用字节数: sizo(in)end;cuvhicl占用字节数:izeof(vehicle)edl;coubiycle占用字节数:ief(biycle)end;cototrca占用字节数:size(oora)e;outmotoycl占用字节数:seof(mtorcycle)enl;motcyle mt;mtRun();m.Setda(0,0,1,2);mhow();m

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

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