🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

포인터 관련 질문입니다.

21.12.06 08:00 작성 조회수 147

0

강의를 듣던 도중(캐스팅 4총사) 궁금한 점이 생겨서 질문드립니다.

class Player와 그 자식 class Knight가 있는데

Player* p = new Knight();

에서 p의 타입인 Player*가 무슨 의미를 띠는 지 모르겠습니다.

이렇게 되면 p에 Player를 넣던 Knight를 넣던 Archer를 넣던 상관없는거 아닌가요?..

또 void*로 선언해준거랑 뭐가다른지 모르겠습니다..

답변 1

답변을 작성해보세요.

1

void*은 아예 [뭔진 모르겠는 타입의 포인터] 정도라면
Player*는 [플레이어 타입]이니 다릅니다.
Player*으로 저장하면 Player에 있는 기능들과 데이터를 다 사용할 수 있겠죠.

void AttackPlayer(Player* player); 라는 함수가 있다면,
의미적으로 Player 타입 포인터를 받아야 하는데
이 때 Knight, Archer 를 다 넣어줄 수 있습니다.
Player <-> Knight,Archer를 왔다 갔다 할 일이 많은데
해당 부분은 지금 이해하시기 보다는 나중에 예제를 보면서 
고민을 해보시기 바랍니다.

채널톡 아이콘