概述
类似于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++所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复