我正在使用操作二叉查找树的库。在这个库是遍历树,并将它找到一个回调类中的每个节点的功能:将听众类传递给函数的问题
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