C ++对象动态命名

时间:2012-11-07 17:20:01

标签: c++ oop pointers

  

可能重复:
  Using unique dynamic variable names (not variable values!)

我是c ++面向对象编程的新手。我正在尝试使用类和对象编写代数求解器。

例如,我想创建一个名为term的类。 我有一个变量,例如:

int number_of_term = 1;

然后我想创建一个名为number_of_term的术语对象。

我尝试用指针做这件事,但它不起作用:

term *number_of_term;

在C ++中是否可以动态创建和命名对象?我可以使用变量作为对象的名称吗?

如果不是,我该怎么做才能做出类似的事情。

2 个答案:

答案 0 :(得分:3)

不,必须在编译时确定C ++中对象的名称。 C ++不是一种动态语言。您应该使用std::mapstd::unordered_map代替。这些将允许您将字符串映射到对象。这就是通常实现允许您在运行时确定对象名称的动态语言。

答案 1 :(得分:0)

不,您不能将变量用作对象的名称。如果我正确理解了您的用例,您需要number_of_term类型为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() );
  }
}