본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다.
시리즈 보기
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 5장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 6장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 7장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 13장 연습 문제 풀이 (이론 문제)
💡
[정답] ②번
💡
[정답] ①번
💡
[정답] ③번
💡
[정답] ④번
💡
[정답] ②번
💡
[정답] ①, ③, ④번
💡
(1)
[정답]
- 업 캐스팅 : ②번
- 다운 캐스팅 : ③번
(2)
[정답]
q 포인터가 현재 가리키는 것은 A 타입의 객체입니다. 그러므로 q가 가리키는 객체 공간에는 멤버 y가 존재하지 않습니다. q->y = 100; 문장은 할당받지 않는 공간인 y에 100을 쓰게 되므로 불법적인 메모리 접근이 되어 비정상적인 종료를 합니다.
💡
(1)
[정답] ③번
(2)
[정답] z, x, w
(3)
[정답] ③번
(4)
[정답] dp = (D*)ap;
💡
(1)
[정답]
생성자 A
생성자 B
(2)
[정답]
생성자 A
생성자 B 10
(3)
[정답]
생성자 A 32
생성자 B 400
💡
(1)
[정답]
B() { cout << "생성자 B" << endl; }
B(int x) { cout << "생성자 B" << x << endl; }
위의 두 생성자 코드에서 오류가 발생합니다. 두 생성자 모두 컴파일러에 의해 묵시적으로 기본 크래스 A의 기본 생성자가 호출되도록 컴파일 됩니다. 그러나 클래스 A에 기본 생성자가 선언되지 않아 컴파일 오류가 발생합니다.
(2)
[정답]
B() : A(20) { cout << "생성자 B" << endl; }
(3)
[정답]
B(int x) : A(x + 20) { cout << "생성자 B" << x << endl; }
💡
[정답] ③번
💡
[정답] ④번
💡
[정답]
class Satellite : public Rocket, public Computer { };
💡
(1)
[정답]
class HiPen : public Pen, public Eraser { };
(2)
[정답]
class OmniPen : public Pen, public Eraser, public Lock { };
💡
[정답] ④번 라인에서 컴파일 오류가 발생합니다.
컴파일러가 다중 상속 되므로 중복된 power가 있어 모호성이 발생합니다. 오류를 수정하기 위해 Car 클래스와 Airplane 클래스는 가상 상속으로 선언합니다.
class Car : virtual public Vehicle
class Airplane : virtual public Vehicle
💡 16
[정답]
현재 만들어진 클래스는 다이아몬드 구조를 가집니다. 다중 상속으로 인하여 screenSize 멤버가 중복 생성되어 각 멤버에 올바르게 접근하지 못할 수 도 있습니다. 가상 상속으로 선언하면 됩니다.
class ColorTV : virtual public TV
class InternetTV : virtual public TV
'대학교 > 명품 C++programming 문제' 카테고리의 다른 글
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (이론 문제) (0) | 2022.11.30 |
---|---|
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (실습 문제) (0) | 2022.11.29 |
[C++] 명품 C++ Programming 7장 연습 문제 풀이 (이론 문제) (0) | 2022.11.22 |
[C++] 명품 C++ Programming 6장 연습 문제 풀이 (이론 문제) (0) | 2022.11.19 |
[C++] 명품 C++ Programming 5장 연습 문제 풀이 (이론 문제) (0) | 2022.11.13 |