-1

嗨,我对 C++ 很陌生,我更习惯于 Java。但我想要做的只是创建一个空的arrayList,我的所有其他函数都可以使用它。

在我的 .h 文件中,我创建了一个新类,其中包含 2 个结构和大约 6 个方法。这些方法中的每一个都使用结构对象的arrayLists,但我不想将arrayLists 作为参数传递。当您在类中创建字段时,我正在尝试做的类似于在 Java 中。

问题是当我在我的.h文件中声明这样的arrayList时......

structObject * myArrayList = new structObject[0];
int ARRAY_SIZE = arrayList.size;

我收到一堆错误,包括new cannot be declared in a constant.

我应该在哪里声明我的空数组列表?这在 C++ 中甚至是允许的吗?

4

2 回答 2

2

您正在尝试将定义放在头文件中。那是不允许的。您只能将声明放在头文件中。

标题中的声明:

structObject* myArrayList;
#define ARRAY_SIZE 100

源文件中的定义:

myArrayList = new structObject[ARRAY_SIZE];

但是,全局变量几乎总是一个坏主意。我会找到一种方法将数组作为参数传递给必要的函数。您还应该查看标准模板库并查看不同的容器。

一种选择:

std::vector<structObject> myArrayList;

这可以放在头文件中,构造函数将进行必要的初始化。

于 2012-11-03T01:13:46.960 回答
0

C++ 中没有内置的 ArrayList 类。看看std::vector课堂。

于 2012-11-03T01:08:32.077 回答