맞는데 왜 틀릴까..?

C++

C++ 실습 문제 14 (Class Inheritance)

안도일 2022. 5. 2. 14:39

1. Point 클래스를 상속받는 ColorPoint 클래스 만들기

메인 함수
Point 클래스 선언부
Point 클래스 구현부
ColorPoint 클래스 선언부
ColorPoint 클래스 구현부

ColorPoint가 Point의 멤버와 함수 모두 상속받아 사용할 수 있다.

 

 

 

2. 업 캐스팅 (부모 클래스가 자식 클래스를 가리킴)

메인 함수
Point 클래스 선언부
ColorPoint 클래스 선언부
ColorPoint 클래스 구현부

메인 함수 23번째 줄처럼 pp의 형 변환을 통해서 cp객체에 있는 함수 showColorPoint() 함수를 호출할 수 있다.

 

 

 

 

3. 다운 캐스팅

pBase 포인터로 기본 클래스의 public 멤버만 접근 가능

pDer 포인터로 객체 cp의 모든 public 멤버 접근 가능

 

메인 함수 33번째 줄 : 반드시 강제 형 변환을 해야 함

 

 

 

 

4. TV,  Wide TV,  Smart TV 생성자의 매개 변수 전달

메인 함수

 

TV 클래스

 

WideTV 클래스

 

SmartTV 클래스
실행결과

 

생성자의 순서와 소멸자의 순서를 주의하자

WideTV를 호출하면 먼저 TV의 생성자가 만들어진 후 WideTV의 생성자가 만들어진다.

소멸자는 생성의 반대 순으로 호출된다.