所以我得到了这些错误,我在网上到处寻找,尝试改变很多东西,但仍然卡住......
我有一个带有ListNode的LinkedList,ListNode有一个指向名为Candidate的对象的指针。 候选人有一个成员,它是指向对象研究所实例的指针。
当我的主要结束时,然后调用链表的析构函数,并在析构函数中删除所有节点。 由于delete首先调用节点的析构函数,因此在析构函数的Node类中执行以下操作:
class MyLinkedListNode
{
public:
Candidate *nodeCand;
MyLinkedListNode *next;
MyLinkedListNode *prev;
~MyLinkedListNode()
{
delete this -> nodeCand;
}
};
在Candidate析构函数中我这样做:
Candidate::~Candidate()
{
delete this -> school ;
}
当学校属于学院*时。 (每个新候选人都有一个新的研究所)
和
LinkedList::~LinkedList()
{
MyLinkedListNode *curr = this -> _head;
MyLinkedListNode *temp = NULL;
while(curr != NULL)
{
temp = curr;
curr = curr -> next;
remove( temp -> nodeCand );
}
}
并且在Institute destructor中我什么都不做。
真的,我不知道我做错了什么。