无限的对象

时间:2014-07-01 02:29:13

标签: c++ object

我有一个程序,它有一个名为convict的对象数组,由Inmate类组成。 代码如下所示:

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

正如您所看到的,用户必须准确输入有多少囚犯进入系统。它后来要求用户输入每个创建的囚犯的信息。这很好用,但如果用户不知道那天有多少罪犯进入系统呢?如果用户需要创建一个新的囚犯并且仍然能够访问每个囚犯属性(即姓名,性别,年龄,身高和体重),我怎样才能成功?我已经安排了我的课程,并设置了getter和setter。这是出于我个人的知识,与任何类型的家庭作业或考试无关。

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

我玩过的另一个老派的例子是: 过山车Tycon - 您可以根据自己的需要创建尽可能多的园丁和机械师。

2 个答案:

答案 0 :(得分:5)

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

#include <vector>
using std::vector;

vector<bool> numbers( N);

如果你避免使用新的&amp;删除,但声明一个你会发现它的矢量sizeof不包含实际的矢量。因此它不会在堆栈上分配大量内存,并且当它超出范围时,将自动释放内存,使用RAII避免内存泄漏比使用new / delete分配自己的细微之处更加可靠。

C++ Information pages for std::vector

Resource Acquisition Is Initialization

答案 1 :(得分:0)

基本上你想为新犯人添加一个新的列向量。 C ++会让你很难尝试从终端输入一个数组。

我发现以下答案允许您从终端修改数组。 1:[How to feed array elements from user (i.e., the console) and how to pass array elements to a function as arguments

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