C++ 丢弃限定符-FPPermissive
大家好,我犯了一个我无法理解的错误 我犯了这个错误C++ 丢弃限定符-FPPermissive,c++,C++,大家好,我犯了一个我无法理解的错误 我犯了这个错误 [Error] passing 'const GPSPathList' as 'this' argument of 'void GPSPathList::print_item(const GPSPathList::GPSCoordNode*)' discards qualifiers [-fpermissive] 你能帮忙吗 我的头球 #ifndef GPSPATHLIST_H #define GPSPATHLIST_H class GPS
[Error] passing 'const GPSPathList' as 'this' argument of 'void GPSPathList::print_item(const GPSPathList::GPSCoordNode*)' discards qualifiers [-fpermissive]
你能帮忙吗
我的头球
#ifndef GPSPATHLIST_H
#define GPSPATHLIST_H
class GPSPathList {
public:
GPSPathList(){ m_size = 0; m_item_list = 0; }
int size() const{return m_size;}
void add_from_user();
void print() const;
double total_distance();
private:
struct GPSCoordNode{
double longtitude;
double lattitude;
GPSCoordNode *next;
};
void print_item(const GPSCoordNode *item);
void addpoint(const double& lattitude, const double& longtitude);
int m_size;
GPSCoordNode *m_item_list;
};
#endif
我的主要
#include "gpspathlist.h"
#include <iostream>
#include <cmath>
using std::ifstream;
using std::cout;
using std::cin;
using std::endl;
using std::string;
void GPSPathList::print_item(const GPSCoordNode *item){
cout<< "<"<<item->lattitude<<","<<item->longtitude<<">"<<endl;
}
void GPSPathList::addpoint(const double& lattitude , const double& longtitude){
GPSCoordNode *new_point = new GPSCoordNode;
new_point->lattitude = lattitude;
new_point->longtitude = longtitude;
if (m_item_list == 0 ) {
new_point->next = m_item_list;
m_item_list = new_point;
}
else {
GPSCoordNode *p = m_item_list;
while (p->next != 0)
p = p->next;
new_point->next = p->next;
p->next = new_point;
}
m_size++;
}
void GPSPathList::add_from_user(){
string a;
double lattitude,longtitude;
while(true){
cout << "Enter lattıtude : " <<endl;
cin >> lattitude;
cout << "Enter longtıtude : " <<endl;
cin >> longtitude;
addpoint(lattitude,longtitude) ;
cout <<"if exit press no to ";
cin >>a;
if(a=="no"){
break;
}
}
}
void GPSPathList::print() const
{
const GPSCoordNode *d = m_item_list;
while (d != 0) {
print_item(d);//my problem is in here
d=d->next;
}
}
double GPSPathList::total_distance(){
double a,b,c,d,longtitude,lattitude,longtitude2,lattitude2,R,S;
GPSCoordNode *v = m_item_list;
for (int i =0; i<m_size; i++){
a=v->lattitude;
b=v->longtitude;
v=v->next;
c=v->lattitude;
d=v->longtitude;
v=v->next;
i++;
R = 6371.8;
longtitude= (3.141593/180.0) * b;
lattitude = (3.141593/180.0) * a;
longtitude2=(3.141593/180.0) * d;
lattitude2=(3.141593/180.0) * c;
double Lat =lattitude2-lattitude;
double Lon = longtitude2-longtitude;
double w = sin(Lat / 2);
double x=sin(Lon / 2);
double q= R * asin(sqrt((w*w)+(cos(lattitude) * cos(lattitude2)*x*x)));
i++;
return S=q*1.609;
cout<<" distance: "<< S;
}
}
int main(int argc, char** argv){
GPSPathList a;
a.add_from_user();
a.print();
a.size();
a.total_distance();
}
#包括“gpspathlist.h”
#包括
#包括
使用std::ifstream;
使用std::cout;
使用std::cin;
使用std::endl;
使用std::string;
void GPSPathList::打印项目(常量gpscoordode*项目){
coutnext=新点;
}
m_size++;
}
void GPSPathList::从用户()添加用户{
字符串a;
双格,长;
while(true){
不能长久;
v=v->next;
c=v->格度;
d=v->长度;
v=v->next;
i++;
R=6371.8;
长度=(3.141593/180.0)*b;
晶格度=(3.141593/180.0)*a;
长径2=(3.141593/180.0)*d;
晶格2=(3.141593/180.0)*c;
双Lat=latitude2 latitude;
双长=长2长;
双w=sin(Lat/2);
双x=sin(Lon/2);
双q=R*asin(sqrt((w*w)+(cos(lattictude)*cos(lattictude2)*x*x));
i++;
返回S=q*1.609;
CUT< P>不能从<代码> const 中调用非->代码> const <代码> >。考虑制作<代码> PrrtPiTys<代码> A<代码> const 方法。代码> const 方法只能调用其他<代码> const 方法。<代码> PrimtItIs<代码>不是<代码> const 方法。