• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

질문이있습니다

20.10.27 11:23 작성 조회수 149

2

안녕하세요 선생님.

class MyList<T> where T : Monster  // T는 반드시 Monster 혹은 Monster를 상속받은 클래스여야 한다.

이 설명이 이해가 안가는데

T가 Monster 타입이어야되는 조건이 있는데 그럼 왜 모든 타입을 받을 수 있는 제너릭으로 만든건가요??

답변 2

·

답변을 작성해보세요.

7

Monster 타입 혹은 Monster를 상속받은 < 이 중요합니다.
꼭 몬스터만 받는건 아니고 Slime, Orc, Skeleton
이렇게 몬스터를 조상님으로 파생된 애들도 넣을 수 있습니다.

Generic을 쓰더라도 어느 정도 규제를 하고 싶은 경우가 자주 생기기 때문에 유용합니다.
가령 SpawnMonster라는 이름의 몬스터 스폰 기능을 만들었는데,
누군가 실수로 SpawnMonster 인자로 Player를 넣어주면 곤란할겁니다.
뭐 이런 상황에서 응용할 수 있겠죠.

참고로 해당 문법과 비슷한게 C++20에서도 새롭게 추가 되었습니다.

1

킴kim님의 프로필

킴kim

질문자

2020.10.27

아 ~ 이해됐습니다. 감사합니다.