sigslots的简单例子

来源:互联网 发布:软件质量保证计划案例 编辑:程序博客网 时间:2024/06/07 13:14

插槽系统常用的有三种:boost的signals,sigslot,sigc++

1、返回值必须为void
2、Slot参数个数范围为0-8个
3、实现slot的类必须继承自has_slots<>

//////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "sigslot.h"

class Sender     
{   
public:   
    sigslot::signal2< std::string , int > SignalDanger;   
    void SayHelp()   
    {   
   printf("A : ~~ Help~~ \n");
        SignalDanger("Help!", 1);    
    }   
};  


class Receiver : public sigslot::has_slots<>
{
public:
    void OnDanger(std::string message, int time)
    {
        printf("B : I heard something say \"%s\" at %d!\n", message.c_str(), time);
    }
}; 


int main(int argc, char* argv[])
{
Sender sender;
Receiver receiver;
sender.SignalDanger.connect(&receiver, Receiver::OnDanger);
sender.SayHelp();
return 0;
}

//////////////////////////////////////////////////////////////

官网:http://sigslot.sourceforge.net/#intro

0积分下载 vc6实现的一个简单例子: http://download.csdn.net/detail/moonshine99/4942485

原创粉丝点击