首页 > 后端开发 > C++ > 如何正确传递C成员函数指针?

如何正确传递C成员函数指针?

Patricia Arquette
发布: 2024-12-04 04:50:13
原创
860 人浏览过

How to Pass C   Member Function Pointers Correctly?

如何在 C 中传递成员函数指针

将类成员函数传递给接受成员函数指针的函数时,这是必不可少的提供指向对象的指针和指向函数的指针。

在给定的示例中, MenuButton::SetButton() 函数需要具有特定签名的函数指针。要传递成员函数,您需要提供对象指针 (this) 和成员函数指针。这可以通过修改 MenuButton::SetButton() 来实现,如下所示:

template <class object>
void MenuButton::SetButton(int xPos, int yPos, LPCWSTR normalFilePath,
        LPCWSTR hoverFilePath, LPCWSTR pressedFilePath,
        int Width, int Height, object *ButtonObj, void (object::*ButtonFunc)())
{
  BUTTON::SetButton(xPos, yPos, normalFilePath, hoverFilePath, pressedFilePath, Width, Height);

  this->ButtonObj = ButtonObj;
  this->ButtonFunc = ButtonFunc;
}
登录后复制

现在,SetButton() 函数同时接受对象指针和函数指针作为参数。

中在 testMenu 类中,可以像这样传递成员函数:

testMenu::testMenu()
  :MenuScreen("testMenu")
{
  x.SetButton(100,100,TEXT("buttonNormal.png"), TEXT("buttonHover.png"),
        TEXT("buttonPressed.png"), 100, 40, this, &testMenu::test2);
  draw = false;
}
登录后复制

这提供了必要的对象和成员函数指针SetButton() 函数,允许其稍后正确调用成员函数。

以上是如何正确传递C成员函数指针?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板