观察成员变量值的变化

Observing change in value of member variable

本文关键字:变化 变量值 成员 观察      更新时间:2023-10-16

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

谁能告诉我如何实现这一目标。

谢谢

我的问题再澄清一下:

我有这样的场景

我有现有的菜单和菜单项。现在我把所有这些菜单项放在工具栏上。由于当这些菜单项位于菜单项中时,我得到了事件ON_UPDATE_COMMAND_UI,我在其中调用函数并更新菜单项状态。

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

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

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

既然你提到了通知表示异步接收暗示),你需要的是一个:
观察器设计模式

您可以使变量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; }
};

我建议你实现观察者模式。