我正在使用操作二叉查找樹的庫。在這個庫是遍歷樹,並將它找到一個回調類中的每個節點的功能:將聽衆類傳遞給函數的問題
bool TCODBsp::traverseInvertedLevelOrder(ITCODBspCallback *callback, void *userData)
ITCODBspCallback
是在庫中的基類,用戶應該獲得自己的回調類傳遞給函數。這是基礎類:
class ITCODBspCallback {
public :
virtual bool visitNode(TCODBsp *node, void *userData) = 0;
};
這裏是我的派生類:
class MyCallback: public ITCODBspCallback
{
public:
virtual bool visitNode(TCODBsp*, void*); // defined in my implementation file
};
我再傳給MyCallback
像這樣的功能:
bsp->traverseInvertedLevelOrder(new MyCallback(), NULL);
和g ++給了我以下錯誤:
expected type-specifier before 'MyCallback'
expected ')' before 'MyCallback'
no matching function for call to 'TCODBsp::traverseInvertedLevelOrder(int*, NULL)'
note: candidates are: bool TCODBsp::traverseInvertedLevelOrder(ITCODBspCallback*, void*)
任何人都知道什麼是錯的?我很好奇爲什麼它認爲MyCallback
是int*
,特別是。
上面顯示了您的整個派生類嗎?或者你可能在那裏定義了任何轉換運算符? – 2010-06-01 21:11:51
這是我的整個派生類,是的。 – Max 2010-06-01 21:17:08