我希望获得有关修改某些类成员变量的通知(可能是原始的或用户定义的)。
任何人都可以让我知道如何实现这一目标。
由于
对我的问题几乎没有澄清:
我的方案类似于
我有现有的菜单和菜单项。现在我将所有这些菜单项放在工具栏上。因为当这些菜单项在菜单项内部时,我得到事件ON_UPDATE_COMMAND_UI,我调用一个函数并更新菜单项状态。
但是现在对于工具栏我必须每次都放置检查状态的函数,变量(数量很多,并且在许多状态下也被修改,我无法控制)。
任何人都可以在不改变现有代码的情况下向我推荐一些不错的选择,因为它非常脆弱。
我们是否有任何方式从语言/编译器获取变量通知,例如Watch变量在visual studio调试器中的工作方式。
答案 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。