当前位置:  开发笔记 > 编程语言 > 正文

C++中的自定义事件?

如何解决《C++中的自定义事件?》经验,为你挑选了1个好方法。

是否可以在C++中创建自定义事件?例如,假设我有变量X和变量Y.每当X改变时,我想执行一个将Y设置为3X的函数.有没有办法创建这样的触发/事件?(触发器在某些数据库中很常见)



1> Adam Wright..:

这基本上是观察者模式的一个实例(正如其他人提到和链接的那样).但是,您可以使用模板魔术来使其更具语法可调性.考虑类似......

template 
class Observable
{
  T underlying;

public:
  Observable& operator=(const T &rhs) {
   underlying = rhs;
   fireObservers();

   return *this;
  }
  operator T() { return underlying; }

  void addObserver(ObsType obs) { ... }
  void fireObservers() { /* Pass every event handler a const & to this instance /* }
};

然后你可以写...

Observable x;
x.registerObserver(...);

x = 5;
int y = x;

用于编写观察者回调函数的方法完全取决于您; 我建议http://www.boost.org的功能或功能模块(你也可以使用简单的仿函数).我还提醒您注意这种类型的运算符重载.虽然它可以使某些编码样式更清晰,但鲁莽使用类似的渲染

似乎LikeAnIntToMe = 10;

一个非常昂贵的操作,可能会爆炸,并导致调试噩梦未来几年.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有