學習筆記 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})
執行結果: