2

一部のクラス メンバー変数 (プリミティブまたはユーザー定義の可能性があります) の変更に関する通知を受け取りたいです。

誰でもこれを達成する方法を教えてもらえますか?

ありがとう

私の質問をもう少し明確にします:

私は次のようなシナリオを持っています

既存のメニューとメニュー項目があります。今、これらすべてのメニュー項目をツールバーに配置しています。これらのメニュー項目がメニュー項目内にあったときから、関数を呼び出してメニュー項目の状態を更新するイベント ON_UPDATE_COMMAND_UI を取得します。

しかし今、ツールバーの場合、毎回状態をチェックするための関数、変数(数が多く、制御できない多くの状態で変更される)を配置する必要があります。

非常に壊れやすいため、既存のコードを変更せずに、誰かが私に良い代替案を提案できますか?

Visual Studio デバッガーで Watch 変数が機能する方法など、言語/コンパイラーから変数の変更通知を取得する方法はありますか。

4

3 に答える 3

4

通知(通知を非同期に受信することを示す)について言及したので、必要なのは:
オブザーバー デザイン パターン

于 2012-06-04T11:11:19.173 に答える
3

変数を作成し、公開されているメソッドをprivate介してアクセスできます。getter/setterこれらの getter/setter 内に print またはカスタム assert を配置します。
例えば:

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 に答える