class card{};
class minion: public card{};
class magic: public card{};
class field{
public:
minion _minion;
};
class hand{
public:
card _card;
void MinionToField(field *_field){
// _field->_minion = _card //
}
};
대충 위와 같은 코드인데, 하스스톤 같은 카드 게임이라 보시면 되구요,
minion과 magic은 card를 상속받습니다.
field에는 minion 밖에 존재하지 못하고, hand에는 minion, magic이 둘다 가능해서 card를 가집니다.
그런데 hand에서 field로 minion을 넘겨 주고 싶어서 주석 처리 부분을 하면 형이 맞지 않아서 에러가 납니다.
(minion) 을 앞에 넣으면 사용자 정의 변환이 적절하지 않다고 하고 적당한 방법도 아닌 것 같습니다.
hand의 멤버 _card가 magic이거나 minion 모두 될 수는 있는데, magic이 아닌 minion만 넘겨 줄 수 잇는 방법을 모르겠습니다.
어떻게 해야 될까요??.. 알려주시면 감사하겠습니다.