嘿,我用C ++编写了代码。该程序是关于计算平面的两个点之间的距离。 没有使用课程,该程序工作正常,但每当我用class&想要返回一个它没有返回任何值的值。
`
#include<iostream>
#include<math.h>
using namespace std;
class plane{
public:
void getdata(float X1,float X2,float Y1,float Y2)
{
cout<< "Enter point X1 ";
cin>>X1;
cout<< "Enter point Y1 ";
cin>>Y1;
cout<< "Enter point X2 ";
cin>>X2;
cout<< "Enter point Y2 ";
cin>>Y2;
}
double distance2(float A1,float A2,float B1,float B2)
{
double distance;
float side1,side2;
side1=(A1-A2)*(A1-A2);
side2=(B1-B2)*(B1-B2);
distance=sqrt(side1+side2);
return distance;
}
};
int main()
{
float X1,X2,Y1,Y2;
plane plane1,plane2;
plane1.getdata(X1,X2,Y1,Y2);
plane1.distance2(X1,X2,Y1,Y2);
cout<<endl;
plane2.getdata(X1,X2,Y1,Y2);
plane2.distance2(X1,X2,Y1,Y2);
}
答案 0 :(得分:1)
您的代码中有两个错误。
第一个:您没有查看方法distance2
返回的值。
你应该这样做:
float distance=plane1.distance2(X1,X2,Y1,Y2);
cout<<distance<<'\n';
第二个:你并没有真正初始化你主要声明的变量float X1,X2,Y1,Y2;
。
Read about passing arguments by value or by reference
因此,您应该将方法getdata
修改为:
void getdata(float &X1,float &X2,float &Y1,float &Y2)
{
cout<< "Enter point X1 ";
cin>>X1;
cout<< "Enter point Y1 ";
cin>>Y1;
cout<< "Enter point X2 ";
cin>>X2;
cout<< "Enter point Y2 ";
cin>>Y2;
}