1

ローカル変数を介して定義済み (パブリック) クラスのメンバーを呼び出す必要があります。私の問題は、クラスで呼び出す変数が一連の値に依存することです。そのため、名前を明示的に入力するのではなく、変数を使用してメンバーを呼び出す必要があります。例えば:

多くのメンバー変数を持つクラスの仮定があります (関心のあるものはすべて double 型です)。では、Assumptions 内で呼び出したい潜在的な変数が 5 つあるとしますが、そのうちの 1 つだけです。

  1. VariableStem_One
  2. VariableStem_Two
  3. VariableStem_Three
  4. VariableStem_Four
  5. VariableStem_Five

私のコードは現在、上記の 5 つの用語のいずれかに等しい内容の文字列を生成しています。そのメンバー変数を呼び出すだけで済みます。間接的に行うことはできますか? したがって、「VariableKey」という変数が 1 つあり、その内容は上記の 5 つの変数のいずれかと同じです。次の呼び出しを行います。

Assumptions.VariableKey

ただし、VariableKey を間接参照として解釈します。

これは、私の実際の問題の抽象化/単純化でもあります。可能な値の数は75に近いため、可能であれば、各変数を個別にコーディングすることは避けたいと考えています。

前もって感謝します!

4

3 に答える 3

2

C++ で直接行うことはできません。より一般的なアプローチは、使用する変数を示す列挙を作成し、それを設定することです。次に、値の配列/ベクトルがあり、列挙子はそのコンテナーへのインデックスとして機能します。

文字列を特定の値にマップするマップを作成することもできますが、追加のオーバーヘッドが追加される可能性があります。

于 2013-06-18T21:08:48.520 に答える
0

あなたがやろうとしていることは"reflection"と呼ばれ、C++ にはそれに対するネイティブ サポートがありません。libraryを介して追加することを検討できますが、「Stem」メンバー変数を文字列のマップに配置して double にする方が簡単です。

于 2013-06-18T21:12:39.037 に答える
0

キーを入力として取得して、Assumption クラスに選択メソッドを追加する必要があります。

于 2014-08-21T22:53:20.883 に答える