2012-11-07 46 views
0

可能重复:
Using unique dynamic variable names (not variable values!)C++对象的动态命名

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

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

int number_of_term = 1; 

然后我想名为number_of_term创建一个长期目标。

我试图用一个指针来做到这一点,但没有奏效:

term *number_of_term; 

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

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

+0

@Joe不完全一样,但这必须是某件东西的重复 –

回答

0

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

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