观察成员变量值的变化

时间:2012-06-04 11:07:25

标签: c++

我希望获得有关修改某些类成员变量的通知(可能是原始的或用户定义的)。

任何人都可以让我知道如何实现这一目标。

由于

对我的问题几乎没有澄清:

我的方案类似于

我有现有的菜单和菜单项。现在我将所有这些菜单项放在工具栏上。因为当这些菜单项在菜单项内部时,我得到事件ON_UPDATE_COMMAND_UI,我调用一个函数并更新菜单项状态。

但是现在对于工具栏我必须每次都放置检查状态的函数,变量(数量很多,并且在许多状态下也被修改,我无法控制)。

任何人都可以在不改变现有代码的情况下向我推荐一些不错的选择,因为它非常脆弱。

我们是否有任何方式从语言/编译器获取变量通知,例如Watch变量在visual studio调试器中的工作方式。

3 个答案:

答案 0 :(得分:4)

由于您提及 通知 表示异步接收暗示),您需要的是:
Observer design pattern

答案 1 :(得分:3)

您可以创建变量private并通过公开提供的getter/setter方法访问它。将打印或自定义断言放在那些getter / setter中 e.g:

class A {
private:
  int x;
public:
  int getx () const { /* your code */ ; return x; }
  void setx (const int i) { /* your code */; x = i; }
};

答案 2 :(得分:2)

我建议您实施observer pattern