Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;对象动态命名_C++_Oop_Pointers - Fatal编程技术网

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