C++的小实验(2)

实验内容及目的

实验目的:理解和掌握C++运算符重载。

实验内容:根据理论课中的Circle类

Circle

-radius:double

+Circle()

+Circle(radius:double)

+getRadius():double

+setRadius(radius:double):void

+getArea():double

 

 

 

 

 

 

在程序清单给出的Circle类中实现关系运算符(<,<=,==,!=,>,>=),实现按半径对Circle对象排序。

2 实验步骤

(1) 创建main.cpp文件,写入基本方法,属性,构造方法的声明,实现声明的方法和实验内容的要求;

(2) 编写测试文件testcircle来测试方法;

 

3 源代码

#include <iostream>

 

using namespace std;

 

class Circle

{

public:

Circle();

double getRadius();

void setRadius(double);

bool operator<(Circle c);

 

private:

double radius;

};

 

Circle::Circle()

{

radius=0;

}

double Circle::getRadius()

{

return radius;

}

void Circle::setRadius(double r)

{

radius=r;

}

bool Circle::operator<(Circle c)

{

if(radius<c.getRadius())

{

return true;

}

else

{

return false;

}

};

 

int main()

{

Circle circle1;

Circle circle2;

Circle circle3;

Circle circle4;

Circle circle5;

circle1.setRadius(5);

circle2.setRadius(15);

circle3.setRadius(2);

circle4.setRadius(13);

circle5.setRadius(3);

Circle circleArray[5]={circle1,circle2,circle3,circle4,circle5};

for(int i=0;i<5-1;i++){

Circle min;

min=circleArray[i];

for(int j=i+1;j<5;j++){

if(circleArray[j]<min){

circleArray[i]=circleArray[j];

circleArray[j]=min;

min=circleArray[i];

}

}

}

for(int k=0;k<5;k++){

cout<<circleArray[k].getRadius()<<endl;

}

return 0;

}

 

4 遇到的问题与分析

开始的时候还不是很明白题目的意思,在我再一次浏览题目的时候发现了重载才知道要我们运用重载来解这道题。题目不难,但是需要我们认真学习重载的方法和原理。而这次实验重点也正是在于重载运算符的方法怎样写和理解实际比较中真正用到的值的关系,只要理解了他们的关系就能很容易做出这道题目。

5 实验体会

通过这次的实验,我更加深入了解了重载的方法和原理,对重载的应用也有了更加深入的接触。这次的题目比较基础,但是却是我对重载的方法的一次实打实的接触,有了这一次的实验,我相信我对重载方面的记忆与应用会有进一步的提升。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值