Problem:
문제 5~6에 적용되는 BaseArray 클래스는 다음과 같다.
| 1 2 3 4 5 6 7 8 9 10 11 12 | class BaseArray { int capacity; // 배열의 크기 int *mem; // 정수 배열을 만들기 위한 메모리의 포인터 protected: // 생성자가 protected BaseArray(int capacity=100){ this->capacity = capacity; mem = new int [capacity]; } ~BaseArray() { delete [] mem; } void put(int index, int val) { mem[index] = val; } int get(int index) { return mem[index]; } int getCapacity() { return capacity; } }; |
BaseArray를 상속받아 큐처럼 작동하는 MyQueue 클래스를 작성하라.
MyQueue를 활용하는 사례는 다음과 같다.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | MyQueue mQ(100); int n; cout << "큐에 삽입할 5개의 정수를 입력하라>> "; for(int i=0; i<5; i++){ cin >> n; mQ.enqueue(n); // 큐에 삽입 } cout << "큐의 용량:" << mQ.capacity() << ", 큐의 크기:" << mQ.length() << endl; cout << "큐의 원소를 순서대로 제거하여 출력한다>> "; while(mQ.length() != 0){ cout << mQ.dequeue() << ' '; // 큐에서 제거하여 출력 } cout << endl << "큐의 현재 크기 : " << mQ.length() << endl; |
Execution Result:

Objective & Hints:
상속과 protected, 파생 클래스 작성
Code:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include |
Explanation:
큐(Queue)는 컴퓨터의 기본적인 자료 구조 중 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 말합니다.
큐에대한 Explanation은 아래 위키피디아 링크에 있습니다.
https://ko.wikipedia.org/wiki/%ED%81%90_(%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0)
[큐 (자료 구조) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org](https://ko.wikipedia.org/wiki/%ED%81%90_(%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0))