2

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

谁能让我知道如何实现这一目标。

谢谢

对我的问题再澄清一点:

我有类似的场景

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

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

任何人都可以在不更改现有代码的情况下建议我一些好的替代方案,因为它非常脆弱。

我们有什么方法可以从语言/编译器获得一些变量更改通知,例如 Watch 变量在 Visual Studio 调试器中的工作方式。

4

3 回答 3

4

由于您提到通知表示异步接收通知),您需要的是:
观察者设计模式

于 2012-06-04T11:11:19.173 回答
3

您可以创建变量private并通过getter/setter公开可用的方法访问它。将打印或您的自定义断言放在这些 getter/setter 中。
例如:

class A {
private:
  int x;
public:
  int getx () const { /* your code */ ; return x; }
  void setx (const int i) { /* your code */; x = i; }
};
于 2012-06-04T11:09:49.540 回答
2

我建议你实现观察者模式

于 2012-06-04T11:11:30.657 回答