将对象/数据从库传递到控制台应用程序(如何)

Passing objects/datas from library to console app (how to)

本文关键字:控制台 应用程序 如何 对象 数据      更新时间:2023-10-16

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

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

您似乎在寻找函数指针。类似这样的东西:

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