2011-10-04 5 views
0

저는 C++을 처음 접했습니다. 제발 같이가주세요.C++ Array in Header

기본적으로, 나는 내 수업 중 하나에 대한 헤더를 만들고 어려움에 처해 있습니다.

해당 클래스의 인스턴스가 Main() 함수에 의해 만들어 지므로이 클래스 인스턴스가 만들어지면 Array 길이를 전달하려고합니다. 그러나 Header에서 정적으로 선언 된 경우이를 수행 할 수 없습니다.

모든 솔루션? 죄송합니다, 이것은 아마도 매우 간단 합니다만, 나는 Java 백그라운드에서오고 있습니다, 나는 Java 방식으로 일을하지 않으려 고합니다.

감사합니다.

+7

코드가 충분하지 않습니다. –

답변

2

C++로 프로그래밍하고 가변 크기의 배열을 선언하려는 경우 "내장"C 스타일 "배열"을 사용하지 않으려 고합니다. 너트 앤 볼트 도구의 일종입니다.

아마도 std::vector을 사용하고 싶을 것입니다. 보다 유연하고 선언 시점에서 크기를 지정할 필요가없는 클래스입니다. 당신은 웹의 주위에 그것의 사용에 대한 자습서를 찾을 수 있지만, 여기에 구글에서 임의의 하나입니다 :

++ C의 흥미로운 점은

http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.html#VECTOR

벡터가 비록 "라이브러리 코드"와 당신이 할 수있는 클래스가 잠재적으로 컴파일러를 수정하지 않고 직접 작성하면 대괄호와 같은 표기법 편의를 사용하여 액세스 할 수 있습니다. 여기에 제시된 FQA에서 자주 묻는 질문의 일부 장점과 몇 가지 단점은, 에누리 양쪽을 :

http://yosefk.com/c++fqa/operator.html

C 스타일 배열의 베어 메탈 추상화를 사용하는 몇 가지 성능 이점이 있지만 std::vector은 Java 배열보다 거의 확실히 빠르며 많은 시간 동안 더 나은 선택입니다.

+0

감사합니다. 지금 벡터를보고 있습니다. –

0

올바르게 이해한다면 정적으로 입력 된 배열의 크기를 가져 와서 클래스에 전달하고 싶습니까?

이것이 맞다면, http://ideone.com/JLoZY를 보아라. 그것은 내 마음에 온 첫 번째 것이다.

기본적으로 컴파일러는 필요한 템플릿 매개 변수를 채울 것이므로 걱정할 필요가 없습니다. 다른 시나리오에서 쉽게 사용할 수 있습니다.

+0

기본적으로 프로그램이 실행될 때 Class 인스턴스가 생성되기 전에 cin을 통해 Array의 길이를 가져 가고 싶습니다. –