에서 개체를 제거 내내가 선언 한 목록
class CZombieView : public CWindowImpl<CZombieView>
{
public:
CZombieView();
void DrawGrid();
Gdiplus::Bitmap m_BitmapImage;
Gdiplus::Graphics m_GraphicsImage;
MachineState zombieTestState;
Machine<ZombieTraits> zombieMachine;
MachineState zombieTestState2;
MachineState zombieTestState3;
Machine<HumanTraits>humanMachine;
MachineState humanTestState;
MachineState humanTestState2;
MachineState humanTestState3;
std::list<MachineState*> zombs;
std::list<MachineState*> humans;
};
에 std::list<MachineState*> zombs
을 선언 나는 다른 클래스를 선언했다. Opp.cpp
class Op
{
public:
CZombieView * cz;
MachineState * neighboor;
MachineState * neighboor2;
void setNeighboor(MachineState * decoy); //
void setNeighboor2(MachineState * decoy2);
virtual void Execute(MachineState& state) = 0;
};
setNeighboor 함수는 변수 neighboor에 CZombieView의 zombieTestState를 설정한다. neighboor가 이미 설정된 후 cz->zombs.remove(neighboor)
을 호출하려고하면 예외가 발생하고 Visual Studio에서 호출 스택이 const _Nodeptr _Phead = this->_Myhead;
에 도달합니다 ... 왜 이런 일이 발생했는지, 또는 이것이 잘못된 방법 일지 잘 모르겠습니다. 목록에서 개체가 ... 모든 입력
void Op::setNeighboor2(MachineState * decoy2)
{
neighboor2 = decoy2;
cz->zombs.remove(neighboor2);
std::cout<<"SET";
}
내 프로그램이 바로 cz->zombs.remove(neighboor2)
에서 중단 감상 할 수있다 및 인쇄 문을도 인쇄되지 않습니다.
아마도 실제 오류 코드를 표시해야합니다. – Xymostech
@Xymostech 내 프로그램이 멈추는 위치를 추가했습니다 ... 어떤 도움이 필요한지 모르겠습니다. ?? –
일종의 부패로 보입니다. 'setNeighboor2'에 문제가 없으므로 코드 내의 다른 곳에서 일어 났을 것입니다. – john