C ++如何修复不兼容的数据类型初始化?

时间:2016-10-10 18:44:41

标签: c++

您好我正在尝试创建一个函数来使用Haversine公式计算2个位置之间的距离。

我为此创建了一个函数,其中包含<cmath>和已定义的_USE_MATH_DEFINE

  Travel distanceTo(Travel travel){

    double a = 0, c = 0, dlat = 0, dlon = 0, lon2 = 0,lon1 = 0,lat2 = 0,lat1 = 0,distance = 0;
    double R = 637300;

    dlon = lon2 - lon1 * (M_PI/180);
    dlat = lat2 - lat1 * (M_PI/180);
    a = pow((sin(dlat / 2)), 2) + cos(lat1) * cos(lat2) * pow((sin(dlon / 2)), 2);
    c = 2 * atan2(sqrt(a), sqrt(1 - a));
    distance =  R * c;

   return distance;

}

我是c ++的新手,拥有相当基本的编程知识。我试图在 main.cpp 文件中调用此方法。因此 double distance = school.distanceTo(home)。正如预期的那样,我收到一个错误警告我双重与Travel类型不兼容。我知道我没有在实际功能中引用/使用旅行,但我不知道如何正确实现它。

任何以正确方式执行此操作的示例都非常重要。

Travel对象包含(double lat, double long, string place, int time)

1 个答案:

答案 0 :(得分:1)

只需将该功能的返回类型从Travel更改为double。

double distanceTo(Travel travel){