1. 程式人生 > >學習筆記 c++ (boost庫,訊號和槽函式)

學習筆記 c++ (boost庫,訊號和槽函式)

#include"iostream" #include"boost/signals.hpp"

using namespace std;

void my_slot(){   cout<<"my_slot()"<<endl; }

void my_slot2(int i){   cout<<"my_slot2():i="<<i<<endl; }

void my_slot3(){   cout<<"my_slot3()"<<endl; }

int main(int argc, char** argv) {   //宣告訊號型別   boost::signal<void()> sig;   boost::signal<void(int)> sig2;     //繫結一個具體的槽函式   sig.connect(1,my_slot);//前面的引數是讓槽函式執行先後,0的優先順序高於一   sig.connect(0,my_slot3);   sig2.connect(my_slot2);     //發訊號   sig2(10);   sig();     return 0; }

CmakeLists.txt:

cmake_minimum_required(VERSION 2.6) project(boost_signal) find_package(Boost REQUIRED COMPONENTS       signals)

set(boost_signal_SRCS boost_signal.cpp main.cpp) add_executable(boost_signal ${boost_signal_SRCS}) target_link_libraries(boost_signal  ${Boost_LIBRARIES})

執行結果: