进一步学习boost了 代码如下: /* ccsdu2004@yahoo.com.cn www.gaimo.net 08.03.2009 */ #include <cstdlib> #include <iostream> //#include <zthread/zthread.h> #include <boost/signals.hpp> using namespace std; struct plus_slot { void operator()(int &i)const { i += 2; } }; struct sub_slot { void operator()(int &i)const { i--; } }; int main(int argc, char *argv[]) { boost::signal<void(int&)> sig; sig.connect(plus_slot()); sig.connect(sub_slot()); int sr = 12; sig(sr); cout<<"sr is: "<<sr<<endl; system("PAUSE"); return EXIT_SUCCESS; } /* ccsdu2004@yahoo.com.cn www.gaimo.net 08.03.2009 */ #include <cstdlib> #include <iostream> //#include <zthread/zthread.h> #include <boost/signals.hpp> using namespace std; /* 说明:同一个组中的插槽 起调用次序是不一样的 要保证其执行次序,就要指定不同的组 如下: */ struct plus_slot { void operator()(int &i)const { i += 2; } }; struct sub_slot { void operator()(int &i)const { i--; } }; int main(int argc, char *argv[]) { boost::signal<void(int&)> sig; sig.connect(1,plus_slot()); sig.connect(0,sub_slot()); int sr = 12; sig(sr); cout<<"sr is: "<<sr<<endl; system("PAUSE"); return EXIT_SUCCESS; }