我是靠谱客的博主 虚拟汽车,最近开发中收集的这篇文章主要介绍介绍一个类型安全的回调库: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++的全部内容,希望文章能够帮你解决介绍一个类型安全的回调库:libsigc++所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部