【发布时间】:2014-03-24 13:31:19
【问题描述】:
我正在尝试将一个函数指针传递给另一个带有 T 类型参数的函数。
像这样:
void preorder ( void ( *functptr ) (T&) ) // preorder traversal of tree
{
preorder(root, functptr(T));
}
我知道我需要将一个实际对象传递给该函数,但它被传递给另一个私有函数,该函数实际上知道它将使用什么函数,我只需要这个公共方法作为两者之间的网关。
【问题讨论】:
-
什么是通用的?您的代码调用您将其地址作为参数传递给
preorder(funcptr)的函数。此函数不返回值 (void)。如果您想将 something 传递给preorder(root,funcptr),您必须更改 funcptr 的返回值:void* (*funcptr)(T&))。 -
你为什么把它标记为C?
标签: c++ templates tree function-pointers