风言枫语  

废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白SIGSLOT是怎么回事.至于深入研究自己去百度吧.

#include "sigslot.h"
using namespace std;
struct Clock
{
 sigslot::signal1<int> Tick;//闹钟响起
 void SendMsg(int nTime)
 {
  Tick(nTime);
 }
};
/*******************************************************/
struct Student : public sigslot::has_slots<>
{
 void GetUp(int nTime)//对闹钟响起事件的处理 和Tick的参数一一对应
 {
  std::cout << "起床时间 : " <<nTime<< std::endl;
 }
};
/*******************************************************/
int _tmain(int argc, _TCHAR* argv[])
{
 Clock   AlarmClock;
 Student MidSchoolStu;
 AlarmClock.Tick.connect(&MidSchoolStu, &Student::GetUp);
 for(int i=0;i<10;i++)
 {
  AlarmClock.SendMsg((int)time(NULL));
  Sleep(1000);
 }
 AlarmClock.Tick.disconnect(&MidSchoolStu);
 return 0;
}
posted on 2013-09-05 18:35  风言枫语  阅读(266)  评论(0编辑  收藏  举报