传递指针时使用const的问题

problem of using const when passing a pointer

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     
}

如果有人能提供帮助,非常感谢。

如果你想让实际的指针是const而不是指向的对象,把const放在类型前面,像这样:

T_ship * const

但是在你的情况下如果函数ship_run没有修改你应该 在函数末尾也将其标记为 const,像这样:

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