проблема использования const при передаче указателя

Visual Studio показывает ошибку, в которой говорится, что « объект имеет квантификаторы типа, которые несовместимы с функцией-членом« somfunc » » .

      class T_ship {
    public:    
        ... 
        float ship_run(int ship_len);
        // function ship_run doesn't change any class member values
};

Есть функция в main()с *T_shipуказатель, переданный в качестве входных данных.

      void draw_ship(const T_ship * a_shp){

    float dist = a_ship-> ship_run(100); 
    // there is a red wavy line under a_ship     
}

Большое спасибо, если кто-то может помочь.

1 ответ

Если вы хотите, чтобы фактический указатель был константным, а не объектом, на который он указывает, поместите перед типом, например:

T_ship * const

Однако в вашем случае, если функция ship_runничего не изменяет, вы должны пометить это как constв конце функции так же, как это:

float ship_run(int v) const { /* your code here */ }

Другие вопросы по тегам