객체 배열의 생성에 대해 살펴보고 동적 배열을 구현하는 벡터 클래스를 살펴본다.

Programming Exercise

객체 배열

배열은 같은 종류의 데이터들이 순차적으로 메모리에 저장되는 자료구조라고 하였다.

객체 배열은 말 그대로 객체가 요소인 배열이다. 선언은 다음과 같다.

클래스_이름  배열_이름[배열_크기];
Circle objArray[3];

//아래는 정수 배열의 선언, 비교해보자
int array[3];

위 예시는 객체는 크기가 3인 객체 배열이 생성된다.

일반 타입의 배열과 달린 클래스 이름이 타입부분에 명시되고, 그 이후는 비슷하다.

즉 정수 배열은 int 타입으로 명시하였지만, 객체배열은 클래스타입을 명시하였다.

생성된 배열의 크기는 변경할 수 없다.

배열 안에 객체들이 생성되어 저장되는데 이 때, 객체의 기본 생성자가 호출된다. 기본 생성자를 정의하지 않으면 오류가 발생한다.

객체 배열에 저장된 객체의 멤버 함수를 호출은 다음과 같다.

배열_이름[호출할 인덱스].멤버함수이름();
objArray[0].calcArea();

벡터

지금까지는 정적 배열을 살펴보았다. 정적 배열은 컴파일 시간에 배열의 크기가 결정되고 더 이상 크기의 변경은 불가능하다.

반대로 동적 배열은 실행시간에도 크기를 변경할 수 있다. 이를 벡터 라고 한다.

벡터는 라이브러리로 제공되고, 컴파일 시간에 배열의 크기를 미리 결정할 필요가 없다.

위 라이브러리를 잘 사용하기 위해 벡터를 잘 이해하는 것이 중요하다.