实验十

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

实验十类与对象的基本概念

一、实验目的

类是C++扩展数据类型,可以封装不同类型的数据成员和函数成员。类是面向对象程序设计的基础。本次实验内容包括面向对象的基本概念、构造函数与析构函数,从实际问题抽象出类等,通过实验要求掌握以下内容:

1、掌握面向对象的基本概念和类的定义方法。

2、掌握类成员的访问权限以及访问类成员的方法。

3、掌握内联函数和默认函数。

4、掌握构造函数和析构函数的意义及使用方法。

二、实验内容

1、范例:设计并测试一个矩形类(Rectangle)。属性为矩形的左下角与右上角的坐标,矩形水平放置。操作为计算矩形的周长和面积。

程序】

#include

#include

using namespace std;

class Rectangle{

double left,top;

double right,bottom;

public:

Rectangle(double l=0,double t=0,double r=0,double b=0);

~Rectangle(){};

void Assign(double l,double t,double r,double b);

void Show();

double Area();

double Perimeter();

};

Rectangle::Rectangle(double l,double t,double r,double b){

left=l;top=t;

right=r;bottom=b;

}

void Rectangle::Assign(double l,double t,double r,double b){ left=l;top=t;

right=r;bottom=b;

}

void Rectangle::Show(){

cout<<"left-top point is("<

cout<<"right-bottom point is("<

return fabs((right-left)*(bottom-top));

}

double Rectangle::Perimeter(){

return 2*(fabs(right-left)+fabs(bottom-top));

}

int main(){

Rectangle rect;

rect.Show();

rect.Assign(100,200,300,400);

rect.Show();

Rectangle rectl(0,0,200,200);

rectl.Show();

rectl.Assign(100,200,300,400);

rectl.Show();

cout<<"面积"<

cout<<"面积"<

"<

return 0;

}

【要求】

(1)将Rectangle(double l=0, double t=0, double r=0, double b=0); 改为Rectangle(double l, double t, double r, double b);

程序仍能正确运行吗?为什么?

(2)注意成员函数void Show( )、double Area () 、double Perimeter( )的使用,因为在第三章如果需编写类似功能的一般函数是需要带参数(形参)的。

而在此处作为类的成员函数又不需要带参数。思考为什么?

(3)理解void Assign(double l,double t,double r,double b);函数的作用。将Rectangle(double l=0, double t=0, double r=0, double b=0);

改为Rectangle(double l, double t, double r, double b);这时,有人认为Rectangle(double l, double t, double r, double b) 和void Assign(double l,double t,

double r,double b)的功能相同,那么Assign 函数能否去掉呢?请试一试,结果会怎样?

2、定义一个圆类(Circle),要求用两种方法定义:

方法一:要求属性为半径,操作为计算圆的周长和面积。

#include

using namespace std;

void main(){

double r,s,l,PI=3.14159;

cout<<"请输入圆的半径r=";

cin>>r;

s=PI*r*r;

l=2*PI*r;

cout<<"\n"<<"圆的面积s="<

}

方法二:要求属性为半径(radius)、圆周长和面积,操作为输入半径,并计算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和拷贝构造函数。

#include

using namespace std;

double PI=3.14159;

相关文档
最新文档