2012-11-03 4 views
-1

안녕하세요 저는 C++에 익숙하지 않았습니다. 자바에 익숙해졌습니다. 하지만 내가하고 싶은 일은 다른 모든 함수에서 사용할 수있는 빈 ArrayList를 만드는 것이다..h 파일에서 arrayList를 선언하는 C

내 .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

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; 

.

관련 문제