




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内蒙古科技大学信息工程学院计算机系面向对象程序设计实验报告姓名张国强学号1667159127班级软件一班实验日期第 16 周(星期 三 )6 月 14日第 一 节项目号、实验名称实验8 继承(一)实验要求(任课教师提供)一、实验目的1理解继承的含义以及声明;2理解共有派生、私有派生和保护派生的含义以及使用;3理解单派生类中构造函数和析构函数的调用顺序。二、实验内容 2.1练习(一):1理解下面的程序,并在VC+6.0下运行查看结果,回答程序后面的问题。#include "iostream.h"class CBasepublic:CBase(int a):a(a)protec
2、ted:void print()cout<<"a="<<a<<endl;private:int a;class CDerive : public CBasepublic:void print()CBase:print();cout<<"b="<<b<<endl;private:int b;void main()CDerive d;d.print();CBase b;b.print();问题一:以上程序有两大错误,试指出来,并改正之?2理解下面的程序,并在VC+6.0下运行查看结果,回
3、答程序后面的问题。#include "iostream.h"class CBasepublic:CBase(int a):a(a)cout<<"base structure"<<endl;CBase()cout<<"base destructure"<<endl;void print()cout<<"a="<<a<<endl;protected:int a;class CDerive : public CBasepublic:CDe
4、rive(int a, int b,int c):CBase(a),b(b),c(c)cout<<"derive structure"<<endl;CDerive()cout<<"derive destructure"<<endl;void print()CBase:print();cout<<"b.a="<<b.a<<endl;cout<<"c="<<c<<endl;private:CBase
5、b;int c;void main()CDerive d(1,2,3); -d.print();问题一:以上程序的输出结果是什么,说明为什么?问题二:处语句执行完后,d.b.a的值为多少?2.2练习(二):1定义点CPoint类作为基类,在此基础上派生出直线CLine类和圆CCircle类,并要求基类和各派生类具有以下特点:aCLine类含有计算直线长度和斜率的成员函数;bCCircle类含有计算圆面积的成员函数。实验内容(由学生填写)实验一:错误一:没有声明派生类的构造函数,以至于不能对基类的数据成员初始化。错误二:访问限定符为保护,则不能在类外访问,只能在类内或派生类中访问。修改后代码如下
6、所示:#include<iostream>using namespace std;class CBasepublic:CBase(int a):a(a) void print()cout<<"a="<<a<<endl;private:int a;class CDerive : public CBasepublic: CDerive(int b,int a):b(b),CBase(a) void print()CBase:print();cout<<"b="<<b<<end
7、l;private:int b;int main() CDerive d(4,6);d.print();CBase b(5);b.print();试验二:错误:通过对象不能访问保护成员。修改后代码如下所示:#include<iostream>using namespace std;class CBasepublic:CBase(int a):a(a)cout<<"base structure"<<endl;CBase()cout<<"base destructure"<<endl;void pr
8、int()cout<<"a="<<a<<endl;int a;class CDerive : public CBasepublic:CDerive(int a, int b,int c):CBase(a),b(b),c(c)cout<<"derive structure"<<endl;CDerive()cout<<"derive destructure"<<endl;void print()CBase:print();cout<<"
9、;b.a="<<b.a<<endl;cout<<"c="<<c<<endl;private:CBase b;int c;int main()CDerive d(1,2,3);d.print();运行结果如图:通过运行结果可以说明:在基类中如果构造函数有参数且在派生类中有对象成员,那么在派生类中先调用基类的构造函数再调用对象成员的构造函数,最后调用派生类的构造函数。析构函数正好相反。试验三:代码如下所示:#include<iostream>#include<cmath>using n
10、amespace std;class CPointpublic: CPoint(int a,int b,int c,int d):x1(a),y1(b),x2(c),y2(d) protected: int x1,y1,x2,y2;class CLine:public CPointpublic: CLine(int x1,int y1,int x2,int y2):CPoint(x1,y1,x2,y2) void Distance() len=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1); cout<<"直线长度为:"<<l
11、en<<endl; void Xielv() k=(double)(y2-y1)/(x2-x1); cout<<"直线斜率为:"<<k<<endl; private: double k,len;class CCircle:public CPointpublic: CCircle(int x1,int y1,int x2,int y2):CPoint(x1,y1,x2,y2) void Area() r=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1); area=PI*r*r; cout<<&
12、quot;圆的面积为:"<<area<<endl; private: double r,area; const double PI=3.14;int main() int s1,s2,s3,s4; cout<<"输入第一个点的坐标:" cin>>s1>>s2; cout<<"输入第二个点的坐标:" cin>>s3>>s4; CLine t1(s1,s2,s3,s4); CCircle t2(s1,s2,s3,s4); t1.Distance(); t1.Xielv(); t2.Area();定义了基类CPoint和派生类Cline、Circle。通过共有继承构造函数获得来自基类的坐标。然后在派生类中具体实现。实验总结(由学生填写)老师问试验二:错在哪?运行结果是啥?回答:将保护访问限定符设定为共有访问限定符,运行结果为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRIA 16020-2024食品输送带
- T/CPUMT 004-2022厨余垃圾微生物处理设备
- T/CNCA 057-2023煤炭行业健康企业建设指南
- T/CIMA 0012-2019火锅底料中吗啡、可待因胶体金免疫层析检测卡
- T/CI 120-2023智慧科技馆建设导则
- T/CHTS 10138-2024高速公路服务区收费站设计指南
- T/CHATA 019-2022肺结核患者管理移动应用程序的功能及应用规范
- T/CGAS 026.2-2023瓶装液化石油气管理规范第2部分:平台建设
- T/CECS 10170-2022陶瓷透水砖
- T/CECS 10074-2019绿色建材评价太阳能光伏发电系统
- 2025-2030中国个人征信行业发展现状调研及前景预测分析研究报告
- 2025农业银行笔试题库及答案
- CNG场站应急处置方案
- 民宿装修合同协议书
- 《新能源汽车电气系统》教学设计 任务1 新能源汽车充电系统认知
- 河南省青桐鸣大联考普通高中2024-2025学年高三考前适应性考试语文试题及答案
- 第22讲 杠杆 滑轮 2025年中考物理专题复习(广东)课件
- 2025年BIM技术在工程项目风险管理中的应用研究报告
- 转让汽修店铺合同协议
- 山东省烟台市、德州市、东营市三市东营2025年高考适应性考试烟台德州东营二模英语试卷+答案
- 游泳馆合同协议书模板
评论
0/150
提交评论