문제 :
아래와 같은 BaseMemory 클래스를 상속받는 ROM(Read Only Memory), RAM 클래스를 작성하라.
BaseMemory에 필요한 코드를 수정 추가하여 적절히 완성하라.
| 1 2 3 4 5 | class BaseMemory{ char *mem; protected: BaseMemory(int size) { mem = new char [size]; } }; |
ROM은 읽기 전용 메모리이므로 작동 중에 값을 쓸 수가 없기 때문에, 공장에서 생산할 때 생산자가 요청한 데이터로 초기화 하는데 이 작업을 굽는다(burn)라고 한다. 그러므로 ROM은 반드시 생성자에서 burn 작업이 일어나야 한다.
다음은 ROM과 RAM 메모리를 생성하고 사용하는 사례이다.
ROM의 0번지에서 4번지까지 읽어 RAM 메모리의 0~4번지에 쓰고, 다시 RAM 메모리의 값을 화면에 출력한다.
전체 프로그램을 완성하라.
| 1 2 3 4 5 6 7 | char x[5] = {‘h’, ’e’, ’l’, ’l’, ‘o’}; ROM biosROM(1024*10, x, 5); // 10KB의 ROM 메모리. 배열 x로 초기화됨 RAM mainMemory(1024*1024); // 1MB의 ROM 메모리 // 0 번지에서 4번지까지 biosRom에서 읽어 mainMemory에 복사 for(int i=0; i<5; i++) mainMemory.write(i, biosROM.read(i)); for(int i=0; i<5; i++) cout « mainMemory.read(i); |
실행 결과 :

목적 및 힌트 :
기본 클래스와 파생 클래스로 나누어 응용 작성
코드 :
| 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 | #include |
공유하기
게시글 관리
코딩은 내일부터 ;
‘💻 개발 & CS > C++ 프로그래밍’ 카테고리의 다른 글
| 명품 C++ programming 실습 문제 8장 9번 (4) | 2020.03.09 |
| 명품 C++ programming 실습 문제 8장 8번 (1) | 2020.03.09 |
| 명품 C++ programming 실습 문제 8장 6번 (1) | 2020.03.09 |
| 명품 C++ programming 실습 문제 8장 5번 (1) | 2020.03.09 |
| 명품 C++ programming 실습 문제 8장 4번 (3) | 2020.03.09 |