-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];

ただし、グローバル変数はほとんど常に悪い考えです。配列を引数として必要な関数に渡す方法を見つけます。また、Standard Template Library を調べて、さまざまなコンテナーを調べる必要があります。

1 つのオプション:

std::vector<structObject> myArrayList;

これはヘッダー ファイルに入れることができ、コンストラクターは必要な初期化を行います。

于 2012-11-03T01:13:46.960 に答える
0

C++ に組み込まれた ArrayList クラスはありません。std::vectorクラスを調べます。

于 2012-11-03T01:08:32.077 に答える