代码之家  ›  专栏  ›  技术社区  ›  ClemsonCoder

如何从另一个函数指针设置函数指针

  •  0
  • ClemsonCoder  · 技术社区  · 7 年前

    我想做以下工作:

    void *f1(int);
    void *f2(int);
    
    f1 = f2;
    

    它说它不能转换 void*(int) void*(int)

    我基本上需要一个键盘处理器。其中所有对象都指向主键盘处理程序函数指针地址,然后将其设置为在其中一个对象被鼠标选中时指向其自己的键盘处理程序。

    我想这样做是为了更好的代码设计原则,并了解一般情况。

    如果有任何方法允许对象设置键盘处理程序,请告诉我。可能有一些技巧使用狭窄或动态多态性?

    2 回复  |  直到 7 年前
        1
  •  4
  •   Brian Bi    7 年前

    您已声明 f1 f2 将函数作为 int 参数和返回 void* . 当然,功能是不可分配的。

    宣布 f1 f2 整数 参数和返回 void ,您需要使用括号:

    void (*f1)(int);
    void (*f2)(int);
    
        2
  •  0
  •   Martin G    7 年前

    C++的方法是:

    std::function<void(int)> f1;
    std::function<void(int)> f2;