C++ 实验多态性实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州大学实验报告学院:电子信息学院专业:通信工程班级:




1. 编写4个重载函数Double(x),返回值为输入参数的两倍;参数类型分别为int、
long、float、double,返回值类型与参数类型一样。

2.请编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计
算对象面积的函数GetArea()和计算周长函数GetPerim()。

3.对类Point重载++(自增)、--(自减)运算符。





1、代码如下:
#include<iostream>
using namespace std;
int Double(int x);
long Double(long x);
float Double(float x);
double Double(double x);
int main()
{ int myInt = 6500;
cout<<Double(myInt)<<endl;
long myLong = 65000;
cout<<Double(myLong)<<endl;
float myFloat = 6.5F;
cout<<Double(myFloat)<<endl;
double myDouble = 6.5e20;
cout<<Double(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<iostream>
#define PI 3.1415926;
using namespace std;
class Shape //抽象类的定义
{
public:
virtual double GetArea() = 0; //纯虚函数
cin >> length >> width;
Rectangle rect(length, width);
cout << "面积是:"<< rect.GetArea() << endl<<"周长是:"<<rect.GetPerim()<<endl; double rr;
cout << "输入半径: ";
cin >> rr;
Circle cir(rr);
cout << "面积是:"<<cir.GetArea() << endl<<"周长是:"<<cir.GetPerim()<<endl;
}
运行结果:
3、代码如下:
#include<iostream.h>
class Point
{
public:
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;
cout<<"Input x&y:";
cin>>x>>y;
Point point1(x,y);
point1.display();point1++;
point1.display();++point1;
point1.display();point1--;
point1.display();--point1;
point1.display();return 0;
}
运行结果:
注:各学院可根据教学需要对以上栏木进行增减。

表格内容可根据内容扩充。

相关文档
最新文档