проблема использования 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 */ }