C ++如何将成员函数指针传递给另一个类?

Yonghui

这是我要实现的:

class Delegate
{
public:
    void SetFunction(void(*fun)());
private:
    void(*mEventFunction)();
}

然后是名为Test的类

class Test
{
public:
    Test();
    void OnEventStarted();
}

现在在Test()中,我想像这样将OnEventStarted传递给Delegate:

Test::Test()
{
    Delegate* testClass = new Delegate();
    testClass->SetFunction(this::OnEventStarted);
}

但是OnEventStarted是一个非静态成员函数,该怎么办?

谢尔盖·A

为了调用成员函数,您既需要指向成员函数的指针,又需要对象。但是,鉴于成员函数类型实际上包括包含该函数的类(在您的示例中,它将void (Test:: *mEventFunction)();并且Test将其与成员一起使用,更好的解决方案是使用std::function。这是这样的:

class Delegate {
public:
    void SetFunction(std::function<void ()> fn) { mEventFunction = fn);
private:
    std::function<void ()> fn;
}

Test::Test() {
    Delegate testClass; // No need for dynamic allocation
    testClass->SetFunction(std::bind(&Test::OnEventStarted, this));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:如何将指针传递给另一个类的成员函数?

来自分类Dev

C ++将成员函数传递给另一个类

来自分类Dev

如何将C#泛型类型传递给另一个类

来自分类Dev

如何将具有字符串数据成员的类的对象传递给C ++中的另一个类

来自分类Dev

C ++:如何将一个对象传递给另一个对象构造函数?

来自分类Dev

如何将函数和参数的变量列表传递给C中的另一个函数?

来自分类Dev

C ++试图将类传递给另一个类的构造函数

来自分类Dev

如何将字符串数组传递给 C 中的另一个函数

来自分类Dev

如何将char数组的值传递给C中另一个文件中的函数?

来自分类Dev

将成员函数指针传递给C样式函数

来自分类Dev

如何在C中将数组索引传递给另一个函数

来自分类Dev

将成员函数地址传递给另一个类的函数

来自分类Dev

在C中如何将局部函数变量值传递给另一个函数并打印值而不会出现错误

来自分类Dev

C++ 如何将引用从一个函数传递到另一个函数?

来自分类Dev

将匿名函数作为唯一参数传递给另一个函数(C ++)

来自分类Dev

将类的方法作为参数传递给C ++中的另一个类

来自分类Dev

C++ 将类的引用传递给另一个类

来自分类Dev

如何在python中实现等效于C ++类成员的功能,该成员返回指向另一个类的指针?

来自分类Dev

如何将一个类的实例传递给另一种形式C#

来自分类Dev

C ++从另一个类访问类成员

来自分类Dev

从C ++中的类模板中的函数调用另一个成员函数

来自分类Dev

将具有不同数量参数的函数传递给另一个函数C ++

来自分类Dev

C ++-将数组返回主函数并将数组传递给另一个函数

来自分类Dev

如何将一个类访问另一个C#类

来自分类Dev

如何将(非静态成员函数的)C ++函数指针传递给预定义的C函数?

来自分类Dev

C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

来自分类Dev

目标c将滑块值传递给另一个类

来自分类Dev

将返回指针传递给C中的另一个指针会导致垃圾或数据丢失?

来自分类Dev

将指向一个C函数的指针作为另一个函数的参数传递

Related 相关文章

  1. 1

    C ++:如何将指针传递给另一个类的成员函数?

  2. 2

    C ++将成员函数传递给另一个类

  3. 3

    如何将C#泛型类型传递给另一个类

  4. 4

    如何将具有字符串数据成员的类的对象传递给C ++中的另一个类

  5. 5

    C ++:如何将一个对象传递给另一个对象构造函数?

  6. 6

    如何将函数和参数的变量列表传递给C中的另一个函数?

  7. 7

    C ++试图将类传递给另一个类的构造函数

  8. 8

    如何将字符串数组传递给 C 中的另一个函数

  9. 9

    如何将char数组的值传递给C中另一个文件中的函数?

  10. 10

    将成员函数指针传递给C样式函数

  11. 11

    如何在C中将数组索引传递给另一个函数

  12. 12

    将成员函数地址传递给另一个类的函数

  13. 13

    在C中如何将局部函数变量值传递给另一个函数并打印值而不会出现错误

  14. 14

    C++ 如何将引用从一个函数传递到另一个函数?

  15. 15

    将匿名函数作为唯一参数传递给另一个函数(C ++)

  16. 16

    将类的方法作为参数传递给C ++中的另一个类

  17. 17

    C++ 将类的引用传递给另一个类

  18. 18

    如何在python中实现等效于C ++类成员的功能,该成员返回指向另一个类的指针?

  19. 19

    如何将一个类的实例传递给另一种形式C#

  20. 20

    C ++从另一个类访问类成员

  21. 21

    从C ++中的类模板中的函数调用另一个成员函数

  22. 22

    将具有不同数量参数的函数传递给另一个函数C ++

  23. 23

    C ++-将数组返回主函数并将数组传递给另一个函数

  24. 24

    如何将一个类访问另一个C#类

  25. 25

    如何将(非静态成员函数的)C ++函数指针传递给预定义的C函数?

  26. 26

    C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

  27. 27

    目标c将滑块值传递给另一个类

  28. 28

    将返回指针传递给C中的另一个指针会导致垃圾或数据丢失?

  29. 29

    将指向一个C函数的指针作为另一个函数的参数传递

热门标签

归档