sigslot库学习

sigslot库学习

     sigslot 库学习

  

      sigslot库 实质上是一个对象之间传递消息的库。

      一些复杂的工程,包含有大量的类。造成对象之间耦合度非常之大。

     该库实际上模拟了信号的发送对象send,以及信号的接受对象recv。

     然后将send对象的信号函数connect到对应的接收对象的函数实现。

     此时尽管调用send对象的类成员函数即可以完成recv对象的一些操作。

     这样在send对象中就不需要拥有recv对象的句柄,减小了耦合性。
  
   示例代码:
   

#include  " sigslot.h "
#include 
< iostream >
#include 
< string >
class  Sender {

public:
  sigslot::signal2
<std::string , int> SignalDanger;
  
  
void Panic()
  
{
    SignalDanger(
"Help!" , 0);
  }

    
}
;

class  Receiver :  public  sigslot::has_slots <> {

public :
  
void OnDanger(std::string mes, int no)
  

    std::cout
<<mes<<no;
  }


}
;

int  main()
{
  Sender send ;
  Receiver recv ;
  send.SignalDanger.connect(
&recv , &Receiver::OnDanger) ;
  send.Panic() ;
  getchar() ;
}

 

你可能感兴趣的:(sigslot库学习)