




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验7 多态性专业:计算机科学与技术班级: 12嵌入 学号:3121101232 姓名: 林珍妮 实验地点: 工A208 实验时间: 2013-11-27 指导教师:李佐勇一、实验目的1掌握用函数成员实现运算符重载的方法;2掌握用友元函数实现运算符重载的方法;3掌握纯虚函数的概念及应用。二、实验环境一台PC机,Windows XP操作系统,Visual C+ 6.0开发环境。三、实验内容1、三维坐标类对象之间的直接运算。三维坐标类有数据成员x、y、z,对象间运算时要求通过函数成员实现“+”、前置“-”、“= =”运算符的重载,通过友元函数实现后置“-”、“+”、“”和“”运算符的重载,实现三维坐标类对象间的直接运算。main()完成对象的定义和有关运算符重载函数的测试。2、由二维坐标点类(含有带默认形参值的构造函数、getX、getY、show函数)作为基类派生出圆类(含有带默认形参值的构造函数、getR、getarea、show函数);再由圆类作为基类派生出圆柱体类(含有带默认形参值的构造函数、getH、getV、show函数);考虑将show作为虚函数。3、将实验内容2改为通过纯虚函数show完成数据成员的输出。四、实验记录1、#includeusing namespace std;class Pointpublic:Point(int xx=0,int yy=0,int zz=0):x(xx),y(yy),z(zz)Point operator+(const Point &p)constreturn Point(x+p.x,y+p.y,z+p.z);Point operator-()-x;-y;-z;return *this;bool operator=(const Point &p1)if(x=p1.x&y=p1.y&z=p1.z)return true;return false;friend Point operator-(Point p,int)return Point(-p.x,-p.y,-p.z);friend void operator+=( Point &p1, Point &p2)p1.x+=p2.x;p1.y+=p2.y;p1.z+=p2.z;friend ostream & operator(ostream &out,const Point &p)out(p.x,p.y,p.z(istream &in,const Point &p)inp.xp.yp.z;return in;private:int x,y,z;int main()Point p1(5,3,2);Point p2(1,5,4);Point p3;coutp1: p1endl;coutp2: p2endl;p3=p1+p2;coutp3=p1+p2: p3endl;-p1;cout-p1: p1endl;if(p1=p2)coutYESendl;else coutNOendl;p1+=p2;coutp1+=p2: p1endl;return 0;运行结果:2、#include#define PI 3.1415using namespace std;class Pointpublic:Point(int xx=0,int yy=0):x(xx),y(yy)int GetX()return x;int GetY()return y;virtual void show()cout(x,y)endl;private:int x,y;class Circle:public Pointpublic:Circle(int xx,int yy,int r):Point(xx,yy),radius(r)int GetR() return radius;float Getarea()float area;area=static_cast(2*PI*radius);return area;void show()coutendl;cout圆心坐标: ;Point:show();cout圆的半径: radiusendl;cout圆的面积: Getarea()endl;private:int radius;class Cylinder:public Circlepublic:Cylinder(int xx,int yy,int r,int h):Circle(xx,yy,r),height(h)int GetH() return height;int GetV() float v;v=static_cast(Circle:Getarea()*height);return v;void show()coutendl;Circle:show();cout圆柱体的高度: heightendl;cout圆柱体的体积: GetV()show();Circle c(0,0,6);pp=&c;pp-show();Cylinder v(0,0,8,9);pp=&v;pp-show();return 0;运行结果:3、#include#define PI 3.1415using namespace std;class Pointpublic:Point(int xx=0,int yy=0):x(xx),y(yy)int GetX()return x;int GetY()return y;virtual void show()=0;private:int x,y;class Circle:public Pointpublic:Circle(int xx=0,int yy=0,int r=0):Point(xx,yy),radius(r)int GetR() return radius;float Getarea()float area;area=static_cast(2*PI*radius);return area;void show()cout圆心坐标: (GetX(),GetY()endl;cout圆的半径: radiusendl;cout圆的面积: Getarea()endl;private:int radius;class Cylinder:public Circlepublic:Cylinder(int xx=0,int yy=0,int r=3,int h=6):Circle(xx,yy,r),height(h)int GetH() return height;int GetV() float v;v=static_cast(Circle:Getarea()*height);return v;void show()coutendl;Circle:show();cout圆柱体的高度: heightendl;cout圆柱体的体积: GetV()show();Cylinder v(0,0,8,9);pp=&v;pp-show();return 0;运行结果:五
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西城市职业大学病理与病理生理期末模拟试题(A卷)附答案详解
- 应急安全培训讲师内容课件
- 漫画分成合同(标准版)
- 2025年快消品行业包装材料绿色创新趋势深度报告
- 2025年生物质能源在智能微网分布式能源系统中的应用优化与创新报告
- 上海市张江、建平中学2024-2025学年九年级上学期期中联考语文试题(无答案)
- 2025年育婴员(五级)证考试题库
- 输煤安全职责培训课件
- 餐饮业代缴社保及团体意外险合同
- 风险评估与应急预案编制承包协议
- 医疗建筑施工要点
- 对新员工保密基本培训
- 石油化工建设工程总承包招标文件示范文本
- 低压电工培训课件-电工常用工具、仪表的使用
- 口耳目手足课件
- 4.2 以礼待人 课件-2024-2025学年统编版道德与法治八年级上册
- 造口并发症护理
- GB/T 6553-2024严酷环境条件下使用的电气绝缘材料评定耐电痕化和蚀损的试验方法
- 加油站物业承包协议模板
- 汽修维修外包合同范本
- 2024工勤人员考试公共课程考试题库及参考答案
评论
0/150
提交评论