It seems that you are removing the next and previous list nodes from the destructor. Which, if pNextand pPrev LinkedListNode*, means that you recursively delete the entire list: - (
Try the following:
std::string LinkedList::RemoveFront()
{
LinkedListNode *n = pHead->GetNext();
std::string rtnData = n->GetData();
pHead->SetNext(n->GetNext());
n->GetNext()->SetPrev(pHead);
n->SetNext(0);
n->SetPrev(0);
delete n;
n=0;
size--;
return rtnData;
}
LinkedListNode::~LinkedListNode()
{
}
( reset prev next 0, node. , node , . , .)