1. 다음 내용을 제외하고 1차원 C++ 배열 (즉 인덱스 집합은 0에서 시작하는 연속적인 정수의 집합이다)과 동일한 class CppArray를 구현하라.
(i) 영역 검사를 수행한다.
(ii) 치환 연산자를 이용하여 한 배열을 다른 배열에 치환하는 것이 가능하다. (ex: cp1 = cp2)
(iii) 배열의 크기를 반환하는 함수를 제공한다.
(iv) cout와 cin을 사용하여 배열의 입력과 출력이 가능하다.
이 구현을 위해 CppArray에 대해 다음과 같은 멤버 함수를 정의해야만 할 것이다.
(a) 생성자 CppArray (int size = defaultSize, float initvalue = defaultValue). 이 생성자는 크기가 size이고 원소들이 모두 initvalue로 초기화된 배열을 생성한다.
(b) 복사 생성자 CppArray (const CppArray &cp2). 이 함수는 배열 cp2와 동일한 배열을 생성한다. 복사 생성자는 다음과 같이 다른 클래스 객체를 이용하여 한 클래스 객체를 초기화 하는데 사용한다.
CppArray a = b;
(c) 치환 연산자 CppArray& operator = (const CppArray& cp2). 이 함수는 원래의 배열을 cp2로 대체한다.
(d) 파괴자 ~CppArray().
(e) 첨자 연산자 float& operator[] (int i). 이 함수는 범위 검사를 할 수 있도록 구현되어야 한다.
(f) 멤버 함수 int GetSize(). 이 함수는 배열의 크기를 반환한다.
(g) CppArray의 원소들을 입력하고 출력하기 위해 연산자 <<와 >>를 다중화한 함수를 구현한다. 이 함수들은 CppArray의 friend 함수로 정의되어야 한다.
- main.cpp 소스화일
- CppArray.h 헤더 화일
*CppArray.cpp 함수용 소스 화일 만들 수 있으나 이번엔 class 선언한 헤더 화일에 함께 함수까지 생성함!
* 참고 : https://jaimemin.tistory.com/136
* 이해는 됐으나 내 힘으로 풀지 않은 것이 아쉬움 ㅠ ㅠ
* 2회독 때는 내 힘으로 풀기 도전 ~.~