介绍一个类型安全的回调库:libsigc++
2016-04-18 15:21
176 查看
类似于QT的信号与槽,可以一对一的绑定,也可以一对多多的绑定,很方便:
最初是在GTKMM官网发现的,使用c++语言,windows下也可以使用。
http://www.gtkmm.org/en/download.html
下面放出2个例子
例一:绑定成员函数
例二:绑定普通函数
最初是在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 world\n"); return 0; }
相关文章推荐
- C语言中的可变参数列表
- C语言获取汉字拼音首字母
- Item 05:了解C++默默编写并调用哪些函数
- 深度探索C++关键字之 virtual
- 犯过错误的C语言问题
- C++_运算符重载
- Machine learning algorithms-Dlib C++ Library
- 【C语言】str类与men库函数的实现(如:strcpy,strcmp,strstr,strcat,memmove,memcpy)
- 大数运算(小项目)
- 《关于C++中运算符的重载》
- OpenCV2.4.10之samples_cpp_tutorial-code_learn------安装配置与第一个Opencv程序
- 【C++】String类
- C++二进制文件的读写
- C++平台相关宏
- C++文件读写详解(ofstream,ifstream,fstream)
- C语言函数指针
- 字符串的next特征函数,KMP算法,C++
- 关于C++构造函数一二
- 详解可变参数列表
- C++文本文件的读写