Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 丢弃限定符-FPPermissive_C++ - Fatal编程技术网

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 方法。