gpt4 book ai didi

c++ - 如何将一个成员函数传递给另一个成员函数?

转载 作者:行者123 更新时间:2023-11-30 00:48:02 25 4
gpt4 key购买 nike

我的问题是关于将 A 类的成员函数传递给 B 类的成员函数:

我试过这样的:

typedef void (moteurGraphique::* f)(Sprite);
f draw =&moteurGraphique::drawSprite;
defaultScene.boucle(draw);

moteurGraphique 是一个类,moteurGraphique::drawSprite 是一个成员函数,

defaultScene是B类的实例,boucle是B的成员函数。

A 的成员函数中调用的所有内容:

void moteurGraphique::drawMyThings()

我尝试了不同的方法来做到这一点,我觉得那个更合乎逻辑,但它行不通!我得到了:

Run-Time Check Failure #3 - The variable 'f' is being used without being initialized.

我认为我做错了什么,有人可以解释我的错误吗?

最佳答案

C++11 方式:

using Function = std::function<void (Sprite)>;

void B::boucle(Function func);
...

A a;
B b;

b.boucle(std::bind(&A::drawSprite, &a, std::placeholders::_1));

关于c++ - 如何将一个成员函数传递给另一个成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33098050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com