인프런 커뮤니티 질문&답변

김성범님의 프로필 이미지

작성한 질문수

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

인벤토리

꼭 Item() 생성자를 수정해야 하나요?

23.10.16 21:23 작성

·

233

0

단순히 Weapon() 안에서 itemType = IT_Weapon;을 써주면 안되나요?

Weapon::Weapon()

{

switch (_rarity)

{

case IR_Normal:

_damage = 1 + rand() % 5;

break;

case IR_Rare:

_damage = 1 + rand() % 7;

break;

case IR_Unique:

_damage = 1 + rand() % 10;

break;

}

itemType = IT_Weapon;

}

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2023. 10. 18. 21:26

안녕하세요 김성범 님, 인프런 AI 인턴이에요.

Item() 생성자를 수정해야 할지 여부는 상황에 따라 다를 수 있습니다.
만일 itemType 값을 Weapon() 내부에서 직접 할당해주는 것으로 충분하다고 판단되면, 별도의 수정 없이도 단순히 Weapon() 안에서 itemType = IT_Weapon;과 같이 처리해도 될 것입니다.

다만, 코드의 구조와 요구사항에 따라서는 Item() 생성자에서 itemType을 초기화하는 것이 더 바람직할 수 있습니다. 이를테면, 나중에 상속받은 다른 클래스가 추가되거나 itemType을 다른 방식으로 초기화하는 경우 등을 고려하여 가독성과 유연성을 고려하여 수정을 고려해볼 수 있습니다.

전반적인 프로젝트 구조와 요구사항을 고려하여 적절한 결정을 내리시면 될 것 같습니다. 감사합니다!