此问题在此处已有答案:
How can I pass a member function where a free function is expected?(9个答案)
Passing non-static member function as parameter of function(4个答案)
2天前关闭。
我有两个班:MeshInput
和VoxelGrid
。VoxelGrid
有一个成员sdf
,它是一个函数指针。现在我想把另一个类的一个非静态函数赋值给sdf
。我不能改变任何一个的签名,因为sdf
有时也指向MeshInput
之外的一个函数。我怎么做?
代码如下:
class VoxelGrid {
private:
double (*sdf)(tg::pos3 const&);
}
class MeshInput {
public:
double sdfFromMesh(tg::pos3 const& point);
}
字符串
根据我的理解,问题是当用函数指针调用函数时,没有像从对象(A.sdfFromMesh()
)调用它时那样的隐式this*
指针。
1条答案
按热度按时间hfwmuf9z1#
您可以使用
std::function
与std::bind
配合使用。std::bind
可以指定要保留的目标函数及其所属位置。例如:字符串
然后你可以像这样将
get
绑定到你的变量:型
请参阅std::bind和std::function了解更多详细信息。