今、私は運動の問題に直面しました:クラス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
とを初期化していないと思いますtop
。しかし、私はそれを修正する方法がわかりません。コードに間違いが見つかりません。