[디딤돌 C++] 76. 최종 실습 – 학생 생성

학생) 다양한 형식에서 사용하는 형식의 생성과 소멸을 담당하는 팩토리 클래스를 정의하면 신뢰성을 높일 수 있어요.

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

시나리오를 보면 먼저 최종 사용자로부터 학생 유형과 이름을 입력받습니다. 그리고 학생 공장에게 학생을 만들어 줄 것을 요청하면 학생 공장에서 학생을 생성하여 반환합니다.

학생 생성 시퀀스 다이어그램

이제 이 부분을 구현해 봅시다.

먼저 EhNara 클래스에 학생을 보관할 수 있는 컬렉션을 멤버 필드로 추가하세요.

이제 EhNara 클래스의 멤버 MakeStudent 메서드를 구현합시다.

StuFactory 클래스에 MakeStudent 메서드를 선언하세요.

StuFactory 클래스의 멤버 MakeStudent를 구현합시다.

StuFactory.h에서는 Student.h 파일만 포함했었는데 StuFactory.cpp에서는 파생 클래스를 생성하는 구문을 사용하였기 때문에 이들에 관한 헤더 파일 포함문을 작성하세요.

그리고 상속과 다형성 실습에서는 Man 클래스가 없었는데 여기에서는 추가하였으니 Man 클래스에 이름과 주민 번호를 멤버 필드를 추가하세요. 그리고 생성자에 이름을 입력받게 수정합시다. 소멸자는 필요없으니 제거하세요. 물론 pn값을 확인하는 접근자와 이름을 확인하는 접근자를 추가하세요. 그리고 정보를 출력하는 View 순수 가상 메서드를 선언합시다.

Man.cpp 파일에 정적 멤버 pn을 선언하세요.

pn 접근자와 name 접근자 메서드도 정의하세요.

Student 클래스에 pn, last_pn, name 멤버 필드를 제거하고 pn 접근자와 name 접근자를 제거하세요.

소스 파일에서도 이들을 제거하고 생성자에서는 Man 클래스 초기화를 하세요.

Stduent 클래스의 멤버 View 메서드에서 pn과 name을 출력하는 부분을 Man 클래스의 pn 접근자와 name 접근자 호출로 수정하세요.

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