我正在使用具有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