您当前的位置: 首页 > 

插件开发

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Boost库-功能介绍-signals2-信号与槽-观察者模式的实现

插件开发 发布时间:2022-04-25 07:25:50 ,浏览量:1

文章目录
    • 1.程序算法
    • 2.作者答疑

1.程序算法

  在阅读本本文前,希望读者仔细阅读学习下本博客下的讲解boost函数对象的那篇文章和bind对象那篇文章,非常简短,却是必须先要了解的知识。信号槽是一种典型的观察模式,如果读者对观察模式不太了解可以查阅下资料。简单来说,就是在需要观察的目标对象注册自己的回调函数(槽函数),当目标对象发生某个事件(信号)时,与该事件相连的所有回调函数会被调用。   接下来以此为逻辑,分为两种,给读者讲解。   首先是全局函数,或者说非类内函数。解释写在注释里,例子代码如下:

#include 
#include 
#include 
#include 

class Button{
private:
	typedef boost::signals2::signal SignalDef; //信号函数对象类
	typedef boost::signals2::signal::slot_type SlotType;//槽函数对象类
private:
	SignalDef m_MySignal;//信号函数对象变量
	boost::signals2::connection m_Connection;//链接对象变量
public:
	boost::signals2::connection RegisteFunction(const SlotType& type){
		m_Connection = m_MySignal.connect(type);
		return m_Connection;
	}
	void SendSignal(){
		m_MySignal(10, 20);
	}
};
void fun1(int a, int b){
	std::cout             
关注
打赏
1665481431
查看更多评论
0.4208s