现在,我遇到了一个练习题:处理 CRect 类中的一些数据。但我的结果与我的预期不同。
我的代码如下:
#include<iostream>
#include<cmath>
using namespace std;
class CRect
{
public:
void Diagonal(CRect one)
{
float l;
l=sqrt( (one.right-one.left)*(one.right-one.left)+(one.bottom-one.top)*(one.bottom-one.top) );
cout<<"The length is "<<l<<endl;
}
void Show(CRect one)
{
cout<<"("<<one.left<<","<<one.top<<")"<<" ";
cout<<"("<<one.right<<","<<one.bottom<<")"<<endl;
}
CRect(float left1,float top1,float right1,float bottom1)
{
left=left1;
top=top1;
right=right1;
bottom=bottom1;
}
CRect(float left1,float top1)
{
left=left1;
top=top1;
}
CRect(CRect &c)
{
right=c.right;
bottom=c.bottom;
}
private:
float left,top,right,bottom;
};
int main()
{
CRect r1(10,10,20,20);
CRect r2(0,0);
r2=CRect(r1);
r1.Show(r1);
r1.Diagonal(r1);
r2.Show(r2);
r2.Diagonal(r2);
return 0;
}
然后,结果如下图:
我认为我没有初始化left
and top
。但是,我不知道如何纠正它。我在我的代码中找不到错误。