废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白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;
}
本文通过一个简单的C++程序示例介绍了SIGSLOT信号槽机制的基本用法。该程序定义了一个Clock类发送Tick信号,并由Student类接收处理此信号。通过实际运行代码展示了信号与槽的连接和断开。
3158

被折叠的 条评论
为什么被折叠?



