可以使用C++中的变量创建对象吗?

3 c++

我想创建一个类的多个对象,但是这个数字直到运行时才会被知道.Intuition告诉我,我应该使用以下循环来创建我的对象:

for (int count = 0;  count < no_of_objects; count ++)
{
    ClassName object_name[count]
}
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用,因为编译器似乎不喜欢使用变量作为对象名称.有没有办法可以使用循环创建这些对象,或者我是否必须使用其他方法.

请记住,我没有长时间使用C++,并且最近才被引入编程,因此我对语言的了解有限 - 到目前为止,数组是我教过的唯一数据结构 - 没有向量,等等

Fre*_*urk 6

是时候学习载体了:

std::vector<ClassName> objects (no_of_objects);
Run Code Online (Sandbox Code Playgroud)

现在使用对象[0]到对象[no_of_objects - 1]; 请注意,objects.size()等于no_of_objects.当你准备好了,看看vector的方法等,但是现在,这个加上知道要包含的标题(<vector>)足以将对象用作动态数组.

  • 对我们允许使用的结构没有任何限制.我会研究载体.谢谢. (2认同)
  • @pst:Bjarne Stroustrup不同意你的看法.他在他的[当前书籍](http://www.amazon.com/dp/0321543726/)的第116页介绍了`std :: vector`,而数组和指针被推迟到第569页.他的大学课程是同样的方式. (2认同)
  • @pstrjds:拿起Koenig/Moo的_Accelerated C++ _并阅读.这是一本入门书,但即使你是一位经验丰富的C++开发人员,你也很可能仍然喜欢阅读它.Koenig&Moo是第一个正确教授C++并在他们教授_inner工作之前很久就教授某些组件的_usage_的人.对于那些受过教育的人来说,在教授模板之前使用`std :: vector <>`进行教学起初可能很奇怪,但是那时候``string`只是一个没有挑战的黑盒子.多年来我一直以这种方式教C++,并取得了很大的成功. (2认同)