πŸ’» Dev & CSC++ Programming

C++ Programming Ch.10 Exercise 8 Solution

Problem: 문제 7을 ν‘ΈλŠ” λ‹€λ₯Έ 방법을 μ†Œκ°œν•œλ‹€. bigger() ν•¨μˆ˜μ˜ λ‹€μŒ λΌμΈμ—μ„œ > μ—°μ‚°μž λ•Œλ¬Έμ— 1 if(a > b) return a; T에 Circleκ³Ό 같은 클래슀 νƒ€μž…μ΄ λŒ€μž…λ˜λ©΄, ꡬ체화가 μ‹€νŒ¨ν•˜μ—¬ 컴파일 였λ₯˜κ°€ λ°œμƒν•œλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 좔상 클래슀 Comparable을 μ œμ•ˆν•œλ‹€. 1 2 3 4 5 6 class Comparable { public: virtual bool operator > (Comparable& op2) = 0; // 순수 가상 ν•¨μˆ˜ virtual bool operator < (Comparable& op2) = 0; // 순수 가상 ν•¨μˆ˜ virtual bool operator == (Comparable& op2) = 0; // 순수 가상 ν•¨μˆ˜ }; Circle ν΄λž˜μŠ€κ°€ Comparable을 상속받아 순수 가상 ν•¨μˆ˜λ₯Ό λͺ¨λ‘ κ΅¬ν˜„ν•˜λ©΄, μ•žμ˜ bigger() ν…œν”Œλ¦Ώ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ”λ° 아무 λ¬Έμ œκ°€ μ—†λ‹€. ...

March 9, 2020 Β· 2 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 9 Solution

Problem: λΉ„ν–‰κΈ° μ˜ˆμ•½ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λΌ. 이 λ¬Έμ œλŠ” μ—¬λŸ¬ 개의 ν΄λž˜μŠ€μ™€ 객체듀을 λ‹€λ£¨λŠ” μ—°μŠ΅μ„ μœ„ν•œ 것이닀. 클래슀 μ‚¬μ΄μ˜ 상속 κ΄€κ³„λŠ” μ—†λ‹€. 항곡사 이름은 'ν•œμ„±ν•­κ³΅'이고, 8개의 μ’Œμ„μ„ κ°€μ§„ 3λŒ€μ˜ λΉ„ν–‰κΈ°λ‘œ μ„œμšΈ λΆ€μ‚° κ°„ μš΄ν•­ 사업을 ν•œλ‹€. 각 λΉ„ν–‰κΈ°λŠ” ν•˜λ£¨μ— ν•œ 번만 μš΄ν•­ν•˜λ©° λΉ„ν–‰μ‹œκ°„μ€ 07μ‹œ, 12μ‹œ, 17μ‹œμ΄λ‹€. λΉ„ν–‰κΈ° μ˜ˆμ•½ ν”„λ‘œκ·Έλž¨μ€ λ‹€μŒμ˜ κΈ°λŠ₯을 κ°€μ§„λ‹€. ● μ˜ˆμ•½ : λΉ„ν–‰ μ‹œκ°„, μ‚¬μš©μžμ˜ 이름, μ’Œμ„ 번호λ₯Ό μž…λ ₯λ°›μ•„ μ˜ˆμ•½ν•œλ‹€. ● μ·¨μ†Œ : λΉ„ν–‰ μ‹œκ°„, μ‚¬μš©μžμ˜ 이름, μ’Œμ„ 번호λ₯Ό μž…λ ₯λ°›κ³  μ˜ˆμ•½μ„ μ·¨μ†Œν•œλ‹€. ...

March 9, 2020 Β· 3 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 8 Solution

Problem: λ‹€μŒ κ·Έλ¦Όκ³Ό 같은 상속 ꡬ쑰λ₯Ό κ°–λŠ” 클래슀λ₯Ό μ„€κ³„ν•œλ‹€. λͺ¨λ“  ν”„λ¦°ν„°λŠ” λͺ¨λΈλͺ…(model), μ œμ‘°μ‚¬(manufacturer), 인쇄 맀수(printedCount), 인쇄 쒅이 μž”λŸ‰(availableCount)을 λ‚˜νƒ€λ‚΄λŠ” 정보와 print(int pages) 멀버 ν•¨μˆ˜λ₯Ό κ°€μ§€λ©°, print()κ°€ ν˜ΈμΆœν•  λ•Œλ§ˆλ‹€ pages 맀의 μš©μ§€λ₯Ό μ‚¬μš©ν•œλ‹€. μž‰ν¬μ ― ν”„λ¦°ν„°λŠ” μž‰ν¬ μž”λŸ‰(availableInk) 정보와 printInkJet(int pages) 멀버 ν•¨μˆ˜λ₯Ό μΆ”κ°€μ μœΌλ‘œ κ°€μ§€λ©°, λ ˆμ΄μ € ν”„λ¦°ν„°λŠ” ν† λ„ˆ μž”λŸ‰(availableToner) 정보와 μ—­μ‹œ printLaser(int pages) 멀버 ν•¨μˆ˜λ₯Ό μΆ”κ°€μ μœΌλ‘œ κ°€μ§„λ‹€. 각 ν΄λž˜μŠ€μ— μ μ ˆν•œ μ ‘κ·Ό μ§€μ •μœΌλ‘œ 멀버 λ³€μˆ˜μ™€ ν•¨μˆ˜, μƒμ„±μž, μ†Œλ©Έμžλ₯Ό μž‘μ„±ν•˜κ³ , λ‹€μŒκ³Ό 같이 μ‹€ν–‰λ˜λ„λ‘ 전체 ν”„λ‘œκ·Έλž¨μ„ μ™„μ„±ν•˜λΌ. ...

March 9, 2020 Β· 3 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 7 Solution

Problem: μ•„λž˜μ™€ 같은 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 μž‘μ—…μ΄ μΌμ–΄λ‚˜μ•Ό ν•œλ‹€. ...

March 9, 2020 Β· 2 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 5 Solution

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 클래슀λ₯Ό μž‘μ„±ν•˜λΌ. ...

March 9, 2020 Β· 3 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 4 Solution

Problem: 문제 3~4에 μ μš©λ˜λŠ” 2차원 μƒμ˜ ν•œ 점을 ν‘œν˜„ν•˜λŠ” Point ν΄λž˜μŠ€κ°€ μžˆλ‹€. 1 2 3 4 5 6 7 8 9 class Point { int x,y; public: point(int x, int y) { this->x = x; this->y = y; } int getX(){ return x; } int getY(){ return y; } protected: void move(int x, int y) { this->x = x; this->y = y; } }; λ‹€μŒ main() ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λ„λ‘ Point 클래슀λ₯Ό μƒμ†λ°›λŠ” ColorPoint 클래슀λ₯Ό μž‘μ„±ν•˜κ³ , 전체 ν”„λ‘œκ·Έλž¨μ„ μ™„μ„±ν•˜λΌ. ...

March 9, 2020 Β· 2 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 3 Solution

Problem: 문제 3~4에 μ μš©λ˜λŠ” 2차원 μƒμ˜ ν•œ 점을 ν‘œν˜„ν•˜λŠ” Point ν΄λž˜μŠ€κ°€ μžˆλ‹€. 1 2 3 4 5 6 7 8 9 class Point { int x,y; public: point(int x, int y) { this->x = x; this->y = y; } int getX(){ return x; } int getY(){ return y; } protected: void move(int x, int y) { this->x = x; this->y = y; } }; λ‹€μŒ main() ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜λ„λ‘ Point 클래슀λ₯Ό 상속받은 ColorPoint 클래슀λ₯Ό μž‘μ„±ν•˜κ³ , 전체 ν”„λ‘œκ·Έλž¨μ„ μ™„μ„±ν•˜λΌ. ...

March 9, 2020 Β· 2 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 2 Solution

Problem: 문제 1~2에 μ μš©λ˜λŠ” 원을 μΆ”μƒν™”ν•œ Circle ν΄λž˜μŠ€κ°€ μžˆλ‹€. 1 2 3 4 5 6 7 8 class Circle{ int radius; public: Circle(int radius=0) { this->radius = radius; } int getRadius() { return radius; } void setRadius(int radius) { this->radius = radius; } double getArea() { return 3.14*radius*radius; } }; λ‹€μŒκ³Ό 같이 배열을 μ„ μ–Έν•˜μ—¬ λ‹€μŒ Execution Resultκ°€ λ‚˜μ˜€λ„λ‘ Circle을 상속받은 NamedCircle ν΄λž˜μŠ€μ™€ main() ν•¨μˆ˜ λ“± ν•„μš”ν•œ ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜λΌ. ...

March 9, 2020 Β· 2 min Β· Sobamemil
πŸ’» Dev & CSC++ Programming

C++ Programming Ch.8 Exercise 1 Solution

Problem: 문제 1~2에 μ μš©λ˜λŠ” 원을 μΆ”μƒν™”ν•œ Circle ν΄λž˜μŠ€κ°€ μžˆλ‹€. 1 2 3 4 5 6 7 8 class Circle{ int radius; public: Circle(int radius=0) { this->radius = radius; } int getRadius() { return radius; } void setRadius(int radius) { this->radius = radius; } double getArea() { return 3.14*radius*radius; } }; λ‹€μŒ μ½”λ“œκ°€ μ‹€ν–‰λ˜λ„λ‘ Circle을 상속받은 NamedCircle 클래슀λ₯Ό μž‘μ„±ν•˜κ³  전체 ν”„λ‘œκ·Έλž¨μ„ μ™„μ„±ν•˜λΌ. 1 2 NamedCircle waffle(3, "waffle"); // λ°˜μ§€λ¦„μ΄ 3이고 이름이 waffle인 원 waffle.show(); Execution Result: ...

March 9, 2020 Β· 2 min Β· Sobamemil