• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

안녕하세요~함수만들때 질문요

20.11.26 23:05 작성 조회수 130

0

함수만들때 반환형식을 ClassType Choose 라고 ClassType으로 반환하신다고 하셨는데...마지막 return반환이 왜 choice 인지 이해가 안됩니다..ㅠ 그리고  함수를 불러올때 ClassType choice = ChooseClass(); 를 써서 불러오는게 이해가 안갑니다 ㅠ 그냥 함수안에서 다 반환을 하는데 ChooseClass(); 만 불러오면 되는거 아닌지요,..

답변 1

답변을 작성해보세요.

0

1)
함수 안에서 만들어준 변수 (ClassType choice 등)은 그 함수 내부에서만 유효하기 때문입니다.
ChooseClass 함수 내부에서 아무리 열심히 연산을 해도,
그 결과물을 외부에 다시 전달할 수 없다면 아무런 소용이 없겠죠!
외부에 전달하는 수단은 여러가지가 있는데 (ref나 out을 사용할 수도 있지만)
가장 간단하고 먼저 생각할 수 있는 방법은 반환값을 이용하는 것입니다.
반환값은 함수가 끝나고 소멸되기 전에 외부에 돌려주는 유언장(?)에 비유할 수가 있습니다.
ChooseClass 함수의 최종 결과물로 남길만한 것은
말 그대로 플레이어의 직업인 ClassType이니,
이를 반환값으로 만들어준 것이고
내부에서 열심히 골라준 결과물 choice에 들고 있으니
이를 return choice로 반환한 것입니다.

2.
1에서 설명드린대로 함수에서 물론 반환을 하지만,
그것을 외부에서 받아주지 않으면 또 아무 소용이 없습니다.
ChooseClass 함수가 기껏 유언장을 남겼는데,
그 유언장을 보지도 않고 버린다면 사실 의미가 없겠죠.
따라서 반환값을 다시 다른 변수에 저장하는 것인데,
유언장을 까서 거기에 남긴 내용을 다시 복사하는 부분이라고 이해하시면 되겠습니다.