如何将变量从main传递给类下的函数?

时间:2017-10-04 05:27:14

标签: c++ class

嘿,我用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);
}

1 个答案:

答案 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;
}