我正在使用具有A *寻路算法的库(libtcod)。我的类继承了回调基类,并实现了所需的回调函数。这是我的一般示例:重建const函数
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的合约,它承诺它不会修改任何东西。 – 2013-04-22 13:54:31