C在.h文件中声明一个arrayList

时间:2012-11-03 01:03:04

标签: c++ arraylist

您好我是C ++的新手我更习惯于Java。但我想要做的只是创建一个空的arrayList,可以被我的所有其他函数使用。

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

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

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

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

我应该在哪里宣布空的arraylist? 这在C ++中是否允许?

2 个答案:

答案 0 :(得分:2)

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

标题中的

声明:

structObject* myArrayList;
#define ARRAY_SIZE 100

源文件中的定义:

myArrayList = new structObject[ARRAY_SIZE];

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

一个选项:

std::vector<structObject> myArrayList;

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

答案 1 :(得分:0)

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