C++ 实验多态性实验报告.doc_第1页
C++ 实验多态性实验报告.doc_第2页
C++ 实验多态性实验报告.doc_第3页
C++ 实验多态性实验报告.doc_第4页
C++ 实验多态性实验报告.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

贵州大学实验报告学院:电子信息学院 专业:通信工程 班级:姓名学号实验组5实验时间指导教师成绩实验项目名称多态性实验目的通过让学生进行实验,使其对于动态多态性有一个较为深入的了解和熟悉。最终可以熟练使用。实验要求1 编写4个重载函数Double(x),返回值为输入参数的两倍;参数类型分别为int、long、float、double,返回值类型与参数类型一样。2 请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数GetArea()和计算周长函数GetPerim()。3 对类Point重载+(自增)、-(自减)运算符。实验原理Visual C+的编译环境下,独立完成实验要求的内容,独立完成编写、编译以及运行的过程实验仪器安装了Visual C+的PC机器实验步骤按照实验要求的内容逐一完成实验的要求。顺序是编写、编译、运行。实验内容1. 编写4个重载函数Double(x),返回值为输入参数的两倍;参数类型分别为int、long、float、double,返回值类型与参数类型一样。2.请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数GetArea()和计算周长函数GetPerim()。3.对类Point重载+(自增)、-(自减)运算符。实验数据1、 代码如下:#includeusing namespace std;int Double(int x);long Double(long x);float Double(float x);double Double(double x);int main() int myInt = 6500; coutDouble(myInt)endl; long myLong = 65000; coutDouble(myLong)endl; float myFloat = 6.5F; coutDouble(myFloat)endl; double myDouble = 6.5e20; coutDouble(myDouble)endl;int Double(int x) return 2*x;long Double(long x) return 2*x;float Double(float x) return 2*x;double Double(double x) return 2*x;运行结果:2、 代码:#include#define PI 3.1415926;using namespace std;class Shape /抽象类的 定义public: virtual double GetArea() = 0; /纯虚函数 virtual double GetPerim() = 0; /纯虚函数;class Rectangle : public Shape /矩形类,公有继承public: Rectangle(double aa, double bb) /带参数的 构造函数 a=aa; b=bb; cout长a宽bendl; virtual double GetArea() return a * b; virtual double GetPerim() return 2*( a + b ); private: double a; double b;class Circle : public Shape /圆类,公有继承 public: Circle(double rr) /带参数的 构造函数 r=rr; cout半径rendl; virtual double GetArea() return r * r * PI; virtual double GetPerim() return 2 * r * PI; private: double r; void main() double length, width; cout length width; Rectangle rect(length, width); cout 面积是: rect.GetArea() endl周长是:rect.GetPerim()endl; double rr; cout rr; Circle cir(rr); cout 面积是:cir.GetArea() endl周长是:cir.GetPerim()endl; 运行结果:3、 代码如下: #includeclass Pointpublic:Point(int xx,int yy):x(xx),y(yy) void display()const;Point &operator+(); Point operator+(int);Point &operator-();Point operator-(int);private: int x,y;void Point:display()const cout当前Point(x,y)endl;Point &Point:operator+() x+;y+;cout执行x+,y+操作!endl;return *this;Point Point:operator+(int)cout执行+x,+y操作!endl;return Point(+x,+y);Point &Point:operator-()x-;y-;cout执行x-,y-操作!endl;return *this;Point Point:operator-(int)cout执行-x,-y操作!endl;return Point(-x,-y);int main()int x,y;coutxy;Point point1(x,y);point1.display();point1+;point1.display();+point1;point1.display();point1-;point1.display();-point1;point1.display();return 0;运行结果:实验总结学习使用虚函数实现动态多态性。而虚函数就是在基类中被关键字virtual说明,并在派生类中重新定义的函数,且在派生类中重工业新定义时,函数原型,包括返回类型、函数名、参数个数与参数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论