class Soldier{
public:
Equip* equip[4];
void SYN(int Type,Weapon* tmpWeapon){
if(Type==GUNTYPE&&equip[0]==null){
Equip[0]=tmpWeapon;//③いる
}
if(Type==HANDGUNTYPE&&equip[1]==null){
Equip[1]=tmpWeapon;//③いる
}
//③いらない
}
};
class Equip{
public:
virtual void PickThisEquip(Soldier* tmpSoldier)=0;//①アイテム取得フィールドとかから接触してたら呼ばれる。
};
class Weapon:public Equip{
private:
int Type;
public:
virtual void PickThisEquip(Soldier* tmpSoldier){
tmpSoldier->SYN(Type,this));//②「僕なんていかがですか?」
}
};