C++如何解决不兼容的数据类型初始化?
问题描述:
嗨我想创建一个函数来计算两个地方之间使用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)
看看函数签名'旅行distanceTo(旅行)'。你的意思是在那里有第一个'旅行'吗? – NathanOliver
推测“旅行”类型是在某处定义的。包含定义它的标题,并使用'Travel'而不是'double'。 – Peter
Tbh我不太确定,我正在看例子,它似乎是他们倾向于做的事情。 – LovesPie