C在.h文件中声明arrayList 我对C++很陌生,我对java有了更多的了解。但是我想做的是创建一个空的arrayList,它可以被我的所有其他函数使用
在我的.h文件中,我创建了一个新类,其中包含2个结构和大约6个方法。这些方法都使用结构对象的ArrayList,但我不想将ArrayList作为参数传入。我试图做的事情与Java中在类中创建字段时类似 问题是当我在.h文件中这样声明arrayList时C在.h文件中声明arrayList 我对C++很陌生,我对java有了更多的了解。但是我想做的是创建一个空的arrayList,它可以被我的所有其他函数使用,c++,arraylist,C++,Arraylist,在我的.h文件中,我创建了一个新类,其中包含2个结构和大约6个方法。这些方法都使用结构对象的ArrayList,但我不想将ArrayList作为参数传入。我试图做的事情与Java中在类中创建字段时类似 问题是当我在.h文件中这样声明arrayList时 structObject * myArrayList = new structObject[0]; int ARRAY_SIZE = arrayList.size; 我遇到了一系列错误,包括不能在常量中声明新的 我应该在哪里声明我的空array
structObject * myArrayList = new structObject[0];
int ARRAY_SIZE = arrayList.size;
我遇到了一系列错误,包括不能在常量中声明新的
我应该在哪里声明我的空arraylist?
在C++中是否允许这样?< p>没有在C++中内置的一个ARARYLAMP类。查看std::vector
类。您试图将定义放入头文件中。这是不允许的。只能将声明放在头文件中
标题中的声明:
structObject* myArrayList;
#define ARRAY_SIZE 100
源文件中的定义:
myArrayList = new structObject[ARRAY_SIZE];
然而,全局变量几乎总是一个坏主意。我会找到一种方法将数组作为参数传递给必要的函数。您还应该查看标准模板库和不同的容器
一种选择:
std::vector<structObject> myArrayList;
std::vector myArrayList;
可以放入头文件,构造函数将执行必要的初始化。
C++中没有<代码> ARARYLIST/<代码>类(除非您自己编写过)。与java的<>代码> ARARYLIST/COD>最相似的C++类是 STD::vector < /C>。张贴实际代码。