可能重复:
Using unique dynamic variable names (not variable values!)
我是c ++面向对象编程的新手。我正在尝试使用类和对象编写代数求解器。
例如,我想创建一个名为term
的类。
我有一个变量,例如:
int number_of_term = 1;
然后我想创建一个名为number_of_term
的术语对象。
我尝试用指针做这件事,但它不起作用:
term *number_of_term;
在C ++中是否可以动态创建和命名对象?我可以使用变量作为对象的名称吗?
如果不是,我该怎么做才能做出类似的事情。
答案 0 :(得分:3)
不,必须在编译时确定C ++中对象的名称。 C ++不是一种动态语言。您应该使用std::map
或std::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() );
}
}