Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1774352
  • 博文数量: 198
  • 博客积分: 4088
  • 博客等级: 上校
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-15 16:29
个人简介

游戏开发,系统架构; 博客迁移到:http://www.jianshu.com/u/3ac0504b3b8c

文章分类

全部博文(198)

文章存档

2017年(1)

2016年(12)

2015年(1)

2014年(3)

2013年(13)

2012年(18)

2011年(150)

分类: C/C++

2012-04-28 17:57:17


点击(此处)折叠或打开

  1. #include <iostream>
  2. using namespace std;

  3. class Receiver
  4. {
  5.       public:
  6.               Receiver(){}
  7.               void print() { cout << "hello, world!" << endl;}
  8. };

  9. template < class receiver>
  10. class SimpleCommand
  11. {
  12.       public:
  13.               typedef void (receiver::*Action)();
  14.              
  15.               SimpleCommand(receiver* r, Action p):_receiver(r),_action(p){}
  16.              
  17.               void Execute() { (_receiver->*_action)();}
  18.              
  19.       private:
  20.               receiver* _receiver;
  21.               Action _action;
  22. };


  23. int main()
  24. {
  25.      Receiver * r;
  26.      SimpleCommand<Receiver> command(r, &Receiver::print);
  27.      command.Execute();
  28.      system("pause");
  29.      return 0;
  30. }

阅读(1345) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~