将成员函数指针传递给外部函数
将成员函数指针作为参数传递给外部函数可能很棘手,尤其是在处理类类型时。这个问题关注一个特定的场景,其中一个类的成员函数需要传递给一个需要成员函数指针的函数。
为了实现这一点,外部函数需要一个指向对象的指针和一个指向成员函数的指针。在给定的代码片段中,外部函数 MenuButton::SetButton() 将指向对象的指针作为 ButtonObj,将指向成员函数的指针作为 ButtonFunc。
解决方案包括传递对象指针和成员指向 MenuButton::SetButton() 的函数指针。在提供的类 testMenu 中,构造函数调用 x.SetButton(...) 并将 this 作为对象指针传递,将 test2 作为成员函数指针传递。这确保了当外部函数被调用时,它可以访问该对象及其成员函数。
这是修改后的代码:
testMenu::testMenu() :MenuScreen("testMenu") { x.SetButton(100,100,TEXT("buttonNormal.png"), TEXT("buttonHover.png"), TEXT("buttonPressed.png"), 100, 40, this, &testMenu::test2); draw = false; }
在外部函数MenuButton::SetButton中(),可以使用对象指针和成员函数指针来调用成员函数,使用语法((ButtonObj)->*(ButtonFunc))();.
以上是如何在 C 中将成员函数指针传递给外部函数?的详细内容。更多信息请关注PHP中文网其他相关文章!