0

重複の可能性:
一意の動的変数名を使用する(変数値ではありません!)

私はC++を使ったオブジェクト指向プログラミングに不慣れです。クラスとオブジェクトを使用して代数ソルバーを作成しようとしています。

たとえば、という名前のクラスを作成したいと思いますterm。たとえば、変数があります。

int number_of_term = 1;

次に、という名前の用語オブジェクトを作成しますnumber_of_term

ポインターを使用して実行しようとしましたが、機能しませんでした。

term *number_of_term;

C ++でオブジェクトを動的に作成して名前を付けることは可能ですか?オブジェクトの名前として変数を使用できますか?

そうでない場合は、似たようなものを作成するにはどうすればよいですか。

4

2 に答える 2

3

いいえ、C++ のオブジェクトの名前はコンパイル時に決定する必要があります。C++ は動的言語ではありません。おそらくstd::maporstd::unordered_map代わりに使用する必要があります。これらにより、文字列をオブジェクトにマップできます。これは、実行時にオブジェクトの名前を決定できる動的言語が通常どのように実装されるかです。

于 2012-11-07T17:26:24.727 に答える
0

いいえ、変数をオブジェクトの名前として使用することはできません。あなたのユースケースを正しく理解していればnumber_of_term、タイプのオブジェクトが必要ですtermvectorオブジェクトを保持するようなコンテナ クラスを使用できnumber_of_termます。このようなもの:

#include <vector>

struct Term
{
};

int main ()
{
  std::vector< Term > terms;
  int number_of_term = 10;

  for(int i = 0; i < number_of_term; ++i)
  {
    terms.push_back( Term() );
  }
}
于 2012-11-07T17:26:08.720 に答える