废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白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;
}