3. 1 구현할 실습 대상
3.1.1 멤버 필드
이번 장에서는 2장에서 다룬 캡슐화를 여러분이 직접 구현해 보시길 바랍니다. 각자가 직접 구현을 하시고 책에 있는 내용과 비교하는 단계로 학습을 해 주시고 미리 책을 보시고 따라 하는 것은 여러분의 실력 향상에 큰 도움이 되지 못할 것입니다.
[그림 3.1]
이번 실습에서 구현할 Stu 클래스는 [그림 3.1]에 있는 멤버 필드와 [그림 3.2]에 있는 멤버 메서드입니다. 먼저, 정적 멤버 필드로는 가장 최근에 생성한 학생의 번호를 보관하는 last_num이 있고 비 멤버 필드로는 차례대로 부여되는 번호(num)와 생성 시 입력 인자로 전달받는 이름(name)이 있고 그 외에 체력(hp), 아이큐(iq), 스트레스(stress), 연속으로 공부한 횟수(scnt)가 있습니다. 이 중에 num은 상수 멤버 필드로 구현해 보세요.
멤버 명 |
설명 |
hp |
체력, 생성 시:50, 최소:0, 최대:100 |
iq |
아이큐, 생성 시:100, 최소:80, 최대:200 |
last_num |
정적 멤버 필드로 초기값은 0이고 가장 최근에 생성한 학생 번호를 보관 |
name |
이름, 생성 시 입력 인자로 전달 받음 |
num |
번호, 자동 부여됨, 상수 멤버 필드임 |
scnt |
연속으로 공부한 회수, 생성 시:0, 최소:0, 최대:5 공부하면 1증가, 다른 행위 시 0으로 Reset 단, GetNum, GetName, View 메서드 호출 시 영향 없음 |
stress |
스트레스, 생성 시:0, 최소:0, 최대:100 |
3.1.2 멤버 메서드
[그림 3.2]
Stu 클래스에 멤버 메서드는 public으로 노출된 것에 대해서만 제시를 하도록 하겠습니다. 이를 효과적으로 표현하는 데 필요한 멤버 메서드가 있으면 private으로 접근 지정자를 설정하여 만들어 보시기 바랍니다.
Stu 클래스에서는 이름을 입력 매개 변수로 정의한 생성자 메서드가 필요합니다. 그리고 지금 실습에서는 학생 내부에서 동적으로 생성하여 보관하는 개체가 없어 필요는 없지만 소멸자를 없애지 않겠습니다. 여러분께서는 소멸자가 필요 없다고 느끼시면 없애도 무관합니다.
생성자와 소멸자 메서드 외에도 춤을 추다, 음료를 마시다, 강의를 듣다, 휴식을 취하다, 잠을 자다, 공부하다와 같이 멤버 필드들이 변화가 생기는 멤버 메서드와 이름을 얻어오다, 번호를 얻어오다, 정보를 보다와 같은 멤버 필드들이 변화가 생기지 않는 상수화 멤버 메서드로 구성해 보시기 바랍니다.
멤버 명
|
설명
|
~Stu
|
소멸자
|
Dance
|
춤을 추다.
iq: 3증가, hp: 30감소, stress: 20감소, scnt: 0으로 reset
|
Drink
|
음료를 마시다.
iq: 4감소, hp: 20감소, stress: 10 감소, scnt: 0으로 reset
|
GetName
|
상수 멤버 메서드로 정의하세요. 이름이 뭐니?
|
GetNum
|
상수 멤버 메서드로 정의하세요. 번호가 뭐니?
|
ListenLecture
|
수업을 듣는다.
iq:scnt만큼 증가, hp:10감소,
stress:20-scnt*5 증가, scnt: 0으로 reset
|
Relax
|
쉬다.
hp: 30증가, stress: 20 감소, scnt: 0으로 reset
|
Sleep
|
잠을 자다.
hp: 50증가, stress: 50 감소, scnt: 0으로 reset
|
Stu
|
생성자
|
Study
|
공부하다.
iq: 5-scnt증가, hp: 5감소, stress: 10 증가, scnt: 1증가
|
View
|
상수 멤버 메서드로 정의하세요. 자신의 상태를 화면에 echo하다.
|
(모든 동영상 강의는 무료입니다.)
'언어 자료구조 알고리즘 > Escort C++' 카테고리의 다른 글
[C++] 캡슐화 실습 소스 코드 (0) | 2016.04.15 |
---|---|
[C++] 캡슐화 실습 - 멤버 메서드 구현 (0) | 2016.04.15 |
[C++] 캡슐화 실습 - 테스트 모듈 작성하기 (0) | 2016.04.15 |
[C++]정적 멤버로 구성된 클래스 사용하기 (0) | 2016.04.15 |
[C++] 클래스에 캡슐화 할 멤버 약속하기 (0) | 2016.04.15 |
[C++] 특별한 정적 멤버 this (0) | 2016.04.15 |
[C++] 상수화 멤버 (0) | 2016.04.15 |
[C++] 개체의 멤버와 형식의 멤버 (0) | 2016.04.15 |
[C++] 소멸자 (0) | 2016.04.15 |
[C++] 생성자 (0) | 2016.04.15 |