0

我想在 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;
}

是的,我现在这是完全错误的方式,但我需要这样的东西。我是新手,我不明白为什么我不能做出那样的东西。

4

1 回答 1

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);)。

于 2013-07-26T22:27:24.880 回答