2012-11-03 110 views
-1

嗨我对C++很新颖我更习惯于Java。但是我想要做的只是创建一个空的arrayList,它可以被我的所有其他函数使用。C在.h文件中声明arrayList

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

问题是,当我宣布这样的ArrayList中在我的.h文件...

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

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

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

+0

C++中没有'arrayList'类(除非你自己写了一个)。与Java的'ArrayList'最相似的C++类是'std :: vector'。 – Wyzard

+0

错误不是由您显示的代码引起的。发布实际的代码。 – Mahesh

回答

0

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

2

您正试图在头文件中定义一个定义。这是不允许的。您只能将声明放在头文件中。

声明在标题:在源文件中

structObject* myArrayList; 
#define ARRAY_SIZE 100 

定义:

myArrayList = new structObject[ARRAY_SIZE]; 

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

一个选项:

std::vector<structObject> myArrayList; 

,可以放在一个头文件,并构造将做必要的初始化。