다라다라V
article thumbnail
728x90
반응형
본 글은 "황기태"님의 [명품 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
반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!