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_termtype 的对象term。您可以使用容器类vector来保存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 回答