【发布时间】:2013-04-15 10:58:17
【问题描述】:
我正在使用具有 A* 寻路算法的库 (libtcod)。我的类继承了回调基类,我实现了所需的回调函数。这是我的通用示例:
class MyClass : public ITCODPathCallback
{
...
public: // The callback function
float getWalkCost(int xFrom, int yFrom, int xTo, int yTo, void *userData ) const
{
return this->doSomeMath();
};
float doSomeMath() { // non-const stuff }
};
我发现了一些使用 const_cast 和 static_cast 的示例,但它们似乎是另一种方式,使非 const 函数能够返回 const 函数结果。在这个例子中我该怎么做?
getWalkCost() 由我的库定义,我无法更改,但我希望能够在其中执行非常量的操作。
【问题讨论】:
-
你确定吗?您意识到您违反了 getWalkCost 的合同,该合同承诺不会修改任何内容。
标签: c++