我想在c ++中进行类似系统的事件处理。我试图创造类似的东西;
###Library
class manager
{
public:
void init(void i) { x = i };
void fire()
{
x("test");
}
private:
void x;
};
(空格)
###Console App
void tester(char* i)
{
printf("%c", i);
}
int main()
{
manager m;
m.init(tester);
m.fire();
return 0;
}
是的,我现在这是完全错误的方式,但我需要这样的东西。我是新手,我无法理解为什么我不能做那样的事情。
答案 0 :(得分:2)
您似乎在寻找函数指针。像这样:
typedef void (*EventFunc)(char*);
class manager
{
public:
void init(EventFunc callback) { x = callback };
void fire()
{
x("test");
}
private:
EventFunc x;
};
其余代码应保持不变(printf("%c", i);
应为printf("%s", i);
除外)。