我有以下电话:
void Derived::GetEntry(Skill&);
InorderTraverse(GetEntry);
哪个电话
void Base<ItemType>::InorderTraverse(void Visit(ItemType&)) const
尝试编译为书面生成
错误 C3867:“Derived::GetEntry”:函数调用缺少参数列表;使用 '&Derived::GetEntry' 创建指向成员的指针
使用 &Derived::GetEntry 生成
无法将参数 1 从 'void (__thiscall Derived::* )(Skill &)' 转换为 'void (__cdecl *)(ItemType &)'
将声明更改为 static void GetEntry... 解决了这些问题,但产生了一组新问题(即我无法访问非静态对象(非静态成员引用必须相对于特定对象)
我有一个类似的遍历操作,它适用于静态声明,因为被调用的函数只显示有关调用它的每个对象的信息。
我一直在寻找几天的答案,我觉得这很简单。有没有办法在另一个函数调用中使用非静态函数作为参数?