我是靠谱客的博主 虚拟汽车,这篇文章主要介绍介绍一个类型安全的回调库:libsigc++,现在分享给大家,希望可以做个参考。

类似于QT的信号与槽,可以一对一的绑定,也可以一对多多的绑定,很方便:
最初是在GTKMM官网发现的,使用c++语言,windows下也可以使用。
http://www.gtkmm.org/en/download.html

下面放出2个例子
例一:绑定成员函数

#include <iostream>
#include <sigc++/sigc++.h>

class Cat
{
public:
    void cry(int i){ std::cout << "cat:" << i << std::endl; }
};

class Dog
{
public:
    void say(int i){ std::cout <<"dog:"<< i << std::endl; }
};

int main()
{
    Cat cat3;
    sigc::signal<void, int>mySignal3;
    mySignal3.connect(sigc::mem_fun(cat3, &Cat::cry));
    mySignal3.connect(sigc::mem_fun(Dog(), &Dog::say));
    mySignal3.emit(001);  //向dog和cat发送信号。

    return 0;
}

例二:绑定普通函数

#include <iostream>
#include <string>

#include <sigc++/sigc++.h>

void speak(const std::string& str)
{
    std::cout << str;
}

int main()
{
    sigc::signal<void, const std::string&> mySignal;

    mySignal.connect(sigc::ptr_fun(&speak));

    mySignal.emit("hello worldn");

    return 0;
}

最后

以上就是虚拟汽车最近收集整理的关于介绍一个类型安全的回调库:libsigc++的全部内容,更多相关介绍一个类型安全内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部