[디딤돌 C++] 83. 최종 실습 – 거실로 가기

학생) 거실로 가기에서는 선택한 학생은 휴식합니다. 마법 학생일 때 여행을 가기 위해 하향 캐스팅 하세요.

이번에는 거실로 가기 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다.

거실로 가기에서는 학생을 선택하여 학생의 Relax를 수행하게 합니다. 각 장소에서는 해당 장소에서 명령할 수 있는 기능만 보이게 한정하였기 때문에 IRelax 인터페이스 형식으로 학생 개체에 접근해야 합니다. 그리고 선택한 학생이 마법 학생이면 Travel 기능을 수행하게 합시다. 물론 학생을 선택하기 위해서는 사용자에게 주민번호를 입력받아 컬렉션 내에 유닛과 비교하는 부분이 있어야 합니다. 이 부분은 이미 기반 클래스 Place에 구현하였기 때문에 이를 활용합니다.

거실로 가기 시퀀스 다이어그램

IRelax 인터페이스에 Relax 메서드를 순수 가상 메서드로 약속하세요.

주거지의 GoLivingRoom 기능을 구현합시다.

학생 클래스에 Relax를 가상 메서드로 변경하고 누가 휴식하는지 출력합시다.

Student 클래스의 Relax 메서드에서는 누가 수행하는 것인지 출력합시다.

그리고 학사 학생, 마법 학생, 운동 학생의 Relax에서는 Student 클래스의 Relax 를 호출하는 부분을 추가하세요.

마법 학생의 Travel 기능에도 누가 여행가는지 출력하는 구문을 추가합시다.

이제 컴파일 및 빌드하신 후에 테스트를 해 보세요.