[디딤돌 C++] 82. 최종 실습 – 소등

학생) 소등에서는 모든 학생이 잠을 잡니다. 기반 클래스 Place에서 제공하는 GetAt으로 얻어온 개체를 IRelax 형식으로 하향 캐스팅 하세요.

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

소등 기능은 주거지에 있는 모든 학생의 Sleep을 수행하게 합니다. 그런데 각 장소에서는 해당 장소에서 명령할 수 있는 기능만 보이게 한정하였기 때문에 IRelax 인터페이스 형식으로 학생 개체에 접근해야 합니다.

소등 시퀀스 다이어그램

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

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

학생 클래스에 Sleep을 가상 메서드로 변경하고 누가 잠을 자는 것인지를 출력합시다.

Student 클래스의 Sleep 메서드에서는 누가 잠을 자는 것인지 출력합시다.

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

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