传递指针时使用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 */ }
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 */ }