C++ C++;对象动态命名
可能重复:C++ C++;对象动态命名,c++,oop,pointers,C++,Oop,Pointers,可能重复: 对于C++的面向对象程序设计,我是新手。我正在尝试使用类和对象编写代数解算器 例如,我想创建一个名为term的类。 我有一个变量,例如: int number_of_term = 1; 然后我想创建一个名为number\u of\u term的term对象 我试着用指针来做,但没有成功: term *number_of_term; 在C++中,是否可以动态地创建和命名对象?我可以使用变量作为对象的名称吗 如果不是,我该怎么做才能使其类似。不,不能使用变量作为对象的名称。如果我正
对于C++的面向对象程序设计,我是新手。我正在尝试使用类和对象编写代数解算器 例如,我想创建一个名为
term
的类。
我有一个变量,例如:
int number_of_term = 1;
然后我想创建一个名为number\u of\u term
的term对象
我试着用指针来做,但没有成功:
term *number_of_term;
在C++中,是否可以动态地创建和命名对象?我可以使用变量作为对象的名称吗
如果不是,我该怎么做才能使其类似。不,不能使用变量作为对象的名称。如果我正确理解了您的用例,那么您需要
number\u\u\u\u term
类型为term
的对象。您可以使用像vector
这样的容器类来保存number\u项
对象。大概是这样的:
#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() );
}
}
#包括
结构术语
{
};
int main()
{
标准::向量<术语>术语;
_项的整数_=10;
for(int i=0;i<项的个数;++i)
{
terms.push_back(Term());
}
}
不,不能将变量用作对象的名称。如果我正确理解了您的用例,那么您需要number\u\u\u\u term
类型为term
的对象。您可以使用像vector
这样的容器类来保存number\u项
对象。大概是这样的:
#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() );
}
}
#包括
结构术语
{
};
int main()
{
标准::向量<术语>术语;
_项的整数_=10;
for(int i=0;i<项的个数;++i)
{
terms.push_back(Term());
}
}
< /代码> 不,必须在编译时确定C++中的对象名称。C++不是动态语言。您可能应该使用
std::map
或std::unordered\u map
。这些将允许您将字符串映射到对象。这就是如何让动态语言在运行时确定对象的名称。 < P>不,必须在编译时确定C++中的对象名称。C++不是动态语言。您可能应该使用std::map
或std::unordered\u map
。这些将允许您将字符串映射到对象。这就是让您在运行时确定对象名称的动态语言通常是如何实现的。@Joe并不完全相同,但这必须与您尝试使用的对象(如C字符数组)重复。不要那样做。使用std::vector、std::list或std::deque@Joe不完全相同,但这必须是您尝试使用的对象(如C字符数组)的副本。不要那样做。使用std::vector、std::list或std::deque