-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
객체 관련 질문
22.09.29 00:54 작성 조회수 145
0
"캐스팅 4총사"의 6:49
Player* p = new Knight(); 부분에서는 들고 있는 건 Player지만 원본은 Knight라는 게 무슨 말인지 모르겠습니다..
답변을 작성해보세요.
1
정준혁
질문자2022.09.29
그러면 player타입 변수지만 Knight라는 원본 객체를 의미하기 때문에 class를 Knight로 선언해 담고 있는 정보들을 사용할 수 있는 건가요?
Rookiss
지식공유자2022.09.29
그건 아닙니다. Player타입의 변수기 때문에 딱 빨간색 영역에만 접근 가능하고,
노란 부분까지 접근하고 싶으면 캐스팅(Knight*)을 해줘야 합니다.
정준혁
질문자2022.09.30
그러면 Player* p = new Knight();는 Knight가 Player을 상속 받고, Knight라는 원본 객체를 담고 있는 Player타입이라는 의미인데, Knight라는 원본 객체를 선언한 이유가 있을까요?? 어차피 Player가 담고 있는 부분만 접근할 수 있으니까요..
Rookiss
지식공유자2022.09.30
캐스팅(Knight*)하면 Knight 부분도 접근이 가능합니다.
이렇게 하는 이유는 각종 타입을 Player로 모아서 관리하기 위함입니다.
(Knight, Archer, Mage ...)
강의 어딘가에서 이 내용은 설명을 했을텐데 어느 부분인지 기억이 가물가물하네요.
중요한 내용이니 한참 더 고민해보시기 바랍니다.
답변 1