【发布时间】:2018-03-15 00:12:35
【问题描述】:
这是我正在尝试使用的打印功能,但它不起作用。目前它在 main() 文件中,但在 main() 本身之外。我不断得到一个 c2228:“.data”左侧必须有类/结构/联合 我根本不是编码方面的专业人士,并且无法弄清楚这一点。因为它是一个模板,所以我假设 p 还不是任何东西,并且不能传递给 inorder 函数,问题是我该如何解决这个问题,我找不到任何接近我理解的东西。请给出一个可行的示例或解决方案,并且尽可能接近新手级别。谢谢!
template <class Entry>
void print(Entry&);
template <class Entry>
void print(Entry& p)
{
cout << p.data << endl;
}
这是我正在尝试使用的功能。我需要对 AVL 树进行迭代中序遍历,并使用这个传递的打印函数来访问和打印来自节点的数据。
声明
void inorder(void(*visit)(Entry &));
实现
template<class Entry>
inline void Binarytree<Entry>::inorder(void(*visit)(Entry &))
{
}
调用main()
tree.inorder(print);
【问题讨论】:
标签: c++ templates pointers member-function-pointers