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 | #include <iostream> #include <string> using namespace std; class BaseMemory { char *mem; int size; int index; protected: BaseMemory(int size) { this->size = size; mem = new char[size]; index = 0; } public: char read(int i) { return mem[i]; } void burn(char *mem, int size); void write(int i, char c) { mem[i] = c; } }; void BaseMemory::burn(char *mem, int size) { if (this->size < index) return; for (int i = index; i < index + size; i++) this->mem[i] = mem[i - index]; index += size; } class ROM :public BaseMemory { public: ROM(int cap, char *mem, int size) :BaseMemory(cap) { burn(mem, size); } }; class RAM :public BaseMemory { public: RAM(int cap) :BaseMemory(cap) {}; }; int main() { char x[5] = { 'h', 'e', 'l', 'l', 'o' }; ROM biosROM(1024 * 10, x, 5); RAM mainMemory(1024 * 1024); for (int i = 0; i < 5; i++) mainMemory.write(i, biosROM.read(i)); for (int i = 0; i < 5; i++) cout << mainMemory.read(i); } | cs |
'Programming > 명품 C++ Programming' 카테고리의 다른 글
명품 C++ Programming 실습문제 8장 8번 (0) | 2018.06.21 |
---|---|
명품 C++ Programming 실습문제 8장 6번 (0) | 2018.06.19 |
명품 C++ Programming 실습문제 8장 5번 (0) | 2018.06.19 |
명품 C++ Programming 실습문제 8장 4번 (0) | 2018.06.19 |
명품 C++ Programming 실습문제 8장 3번 (0) | 2018.06.19 |