2016-10-10 84 views
-1

嗨我想创建一个函数来计算两个地方之间使用Haversine公式的距离。C++如何解决不兼容的数据类型初始化?

我创建了一个功能,这和包括<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)。正如预期的那样,我收到一个错误,警告我说double与Travel类型不兼容。我知道我没有在实际功能中引用/使用过旅行,但我不知道如何正确实现它。

任何正确的方法来做到这一点的例子是非常appericiated。

的旅游对象包含(double lat, double long, string place, int time)

+1

看看函数签名'旅行distanceTo(旅行)'。你的意思是在那里有第一个'旅行'吗? – NathanOliver

+1

推测“旅行”类型是在某处定义的。包含定义它的标题,并使用'Travel'而不是'double'。 – Peter

+0

Tbh我不太确定,我正在看例子,它似乎是他们倾向于做的事情。 – LovesPie

回答

1

只要改变从旅游这个函数翻番的返回类型。

double distanceTo(Travel travel){ 
+0

Omg是它吗?是的,它的工作表示感谢。 – LovesPie

相关问题