我想在c++中实现一个具有回调的类。
所以我想我需要一个有两个论据的方法:
目标对象。(比方说*myObj)
指向目标对象的成员函数的指针。(这样我就可以做*myObj->memberFunc();)
这些条件是:
myObj可以来自任何类。
将是回调函数的成员函数是非静态的。
我已经读过这方面的文章了,但似乎我需要事先了解myObj的类。但我不知道该怎么做。我该怎么处理呢?这在C++中是可能的吗?
这是我的想法,但肯定是不正确的。
class MyClassWithCallback{
public
void *targetObj;
voi
我需要用C包装一个C++库。这个C++库定义回调函数。例如:
// from C++ library
typedef X CallbackFn(Y y); // X and Y are classes
class Z
{
public:
void addCallback( CallbackFn* fn ) { callbackFn = fn; }
private:
CallbackFn* callbackFn;
};
在C包装器中,我可以定义新的C回调,它调用C++回调。如下所示:
我想知道callback functions实际使用的地方?
有没有办法在C/C++中实现回调函数(而不是使用函数指针)?
请解释一下下面这行-
"A callback can be used as a simpler alternative to polymorphism and generic programming“
谢谢
,得到了一个关于如何做非线程安全版本的很好的答案。
下面是代码,我试着稍微修改一下才能正常工作:
#include <stdio.h>
#include <functional>
#include <thread>
void register_with_library(int (*func)(int *k, int *e)) {
int x = 0, y = 1;
int o = func(&x, &y);
}
typedef int (*callback_t)(int*,int*);
class A {
templat
我需要能够让一个超类执行由继承它的类定义的回调。我对C++比较陌生,据我所知,成员函数指针的主题是一个非常模糊的领域。
我已经看到了问题的答案和讨论各种事情的随机博客帖子,但我不确定其中是否有专门针对我的问题的。
下面是一段简单的代码,它说明了我想要做的事情。这个示例可能没有多大意义,但它与我正在尝试编写的代码非常相似。
class A {
protected:
void doSomething(void (A::*someCallback)(int a)) {
(*this.*someCallback)(1234);
}
};
class B : p
我有一些需要C函数的代码,但我想实例化一堆类实例,并将该类的成员函数作为C函数传递。我需要同时捕获N个实例。我希望我能以lambda的身份来做。 下面是生成的函数应该是什么样子(大致): // This is the code I want to interface with:
typedef void func(ParamClass param); // ParamClass is NOT my class
extern void notMyCode1(func funcArg); // Code I want to call, saves funcArg
extern void no