您好我是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 ++中是否允许?
答案 0 :(得分:2)
您正尝试在头文件中添加定义。这是不允许的。您只能将声明放在头文件中。
标题中的声明:
structObject* myArrayList;
#define ARRAY_SIZE 100
源文件中的定义:
myArrayList = new structObject[ARRAY_SIZE];
但是,全局变量几乎总是一个坏主意。我会找到一种方法将数组作为参数传递给必要的函数。您还应该查看标准模板库并查看不同的容器。
一个选项:
std::vector<structObject> myArrayList;
可以放在头文件中,构造函数将进行必要的初始化。
答案 1 :(得分:0)
C ++中没有内置的ArrayList类。查看std::vector
类。