12月测试题:3.圆的比较
设有一个圆类,包括相关数据成员和成员函数,
要求:编写main函数对象测试代码,从键盘输入2个圆类对象的半径,根据半径比较这两个圆是否相等。
前置代码:
#include <iostream>
using namespace std;
class Circle
{
private:
int r;
后置代码:
int main()
{
int r1,r2;
cin>>r1>>r2;
Circle a(r1),b(r2);
a.Show();
b.Show();
if(a==b)
cout<<"相等"<<endl;
else
cout<<"不相等"<<endl;
return 0;
}
解题思路:构造圆类circle
唯一难点 重写bool型运算符==
#include <iostream>
using namespace std;
class Circle
{
private:
int r;
public:
Circle(int a)
{
r=a;
}
void Show()
{
cout<<"半径="<<r<<endl;
}
friend bool operator ==(Circle &c2,Circle &c1)
{//这里重写的==,最终希望返回bool 所以return 交给==判断
//重写也可以这么写
// bool operator ==(Circle &c1)
//{
// return r==c1.r;
//}
return c2.r==c1.r;
}
};
int main()
{
int r1,r2;
cin>>r1>>r2;
Circle a(r1),b(r2);
a.Show();
b.Show();
if(a==b)
cout<<"相等"<<endl;
else
cout<<"不相等"<<endl;
return 0;
}