您的位置:首页 > 编程语言 > C语言/C++

c++ 关于sigslot库的调用例子

2017-05-02 10:44 232 查看
sigslot库文件其实就是一个.h文件,其作用类似于qt中的信号与槽机制。

需要注意一点:signal2<int,std::string> clicked;其中signal2的意思是可以进行传递两个参数,是可以设置传参个数的。其是通过模板来进行实现的。

#include "sigslot.h"

#include <iostream>

#include <string>

using namespace sigslot;

 

class Switch

{

public:

    signal2<int,std::string> clicked;

};

 

class Light : public has_slots<>

{

public:

    void turn_on(int a,std::string b)

    {

        std::cout << "Turn on ~" << std::endl;

        std::cout << "a == " << a << std::endl;

        std::cout << "b == " << b << std::endl;

    }

 

};

 

int main(int argc, char *argv[])

{

    Light lit1;

    Switch swh;

 

    swh.clicked.connect(&lit1, &Light::turn_on);

 

    swh.clicked.emit(1,"b");

 

    swh.clicked.disconnect_all();

 

    system("pause");

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: