无限的对象

Infinite objects

本文关键字:对象 无限      更新时间:2023-10-16

我有一个程序,它有一个名为"囚犯"的对象数组,由类"囚犯"组成。代码看起来像这样:

int intakeAmount;
cout << "How many inmates came in today";
cin >> intakeAmount;
Inmate convict[intakeAmount];

如您所见,用户必须输入进入系统的囚犯的确切数量。然后,它要求用户输入所创建的每个罪犯的信息。这很有效,但如果用户不知道当天有多少罪犯进入系统,该怎么办?当用户需要创建一个新的罪犯时,我如何才能使它能够访问每个罪犯的属性(即姓名,性别,年龄,身高和体重)?我已经把类设置好了getter和setter也都准备好了。这是我自己的个人知识,与任何类型的作业或考试无关。

其他的例子:我知道这是java,我承认我从来没有玩过,但我知道世界是无限的,用户可以创建无限数量的对象。

另一个我玩过的老式游戏例子是:过山车大亨——你可以随心所欲地创造许多园丁和机械师。

答案是动态分配数组,如建议的std::vector将在需要时自动调整大小。

#include <vector>
using std::vector;
vector<bool> numbers( N);

如果您避免使用new &删除,但是声明一个向量,你会发现它的sizeof不包括实际的向量。因此,它不会在堆栈上分配大量内存,并且会在超出作用域时自动释放内存,使用RAII可以避免内存泄漏,这比使用new/delete分配内存要可靠得多。

c++ std::vector

的信息页

资源获取是初始化

实际上是要为新囚犯添加一个新的列向量。c++会让你很难从终端输入数组。

I found下面的答案允许您从终端修改数组。1:[如何从用户(即控制台)提供数组元素以及如何将数组元素作为参数传递给函数

然后输出您为每个向量输入的所有值。