当前位置:  开发笔记 > 编程语言 > 正文

是否可以在C++中创建方法调用调度程序?

如何解决《是否可以在C++中创建方法调用调度程序?》经验,为你挑选了1个好方法。

考虑以下代码:

struct X {
  void MethodX() {
    ...
  }
};

struct Y {
  void MethodY() {
    ...
  }
};

void test () {
  X x;
  Y y;
  Dispatcher d;
  d.Register("x", x, &X::MethodX);
  d.Register("y", y, &Y::MethodY);
  d.Call("x");
  d.Call("y");
}

问题是如何实现Dispatcher.我不介意X和Y可以继承某些东西,但是Dispatcher应该允许更多的客户端(不仅仅是X和Y).如果可能的话我想避免使用void*指针:)



1> Assaf Lavie..:

看一下boost :: function,就可以了.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有