所以我正在制作一个链表,除了列表的析构函数之外,关于它的一切都正如我所希望的那样工作:
alpha
当程序运行时,它会执行我需要的所有其他操作,但是当它试图调用它并结束程序时似乎无限期地在析构函数上循环。这是我在这里的第一个问题,而且我对这个整个编程问题都是新手,所以如果你需要再看一下我的程序代码来理解这个析构函数,我很乐意分享它!
答案 0 :(得分:-2)
最好为PhoneNode
添加析构函数,以便每个析构函数都删除其后继者。然后你根本不需要循环:
PhoneNode::~PhoneNode()
{
delete next;
}
请注意,这会遍历整个剩余列表。
然后你的PhoneList
析构函数看起来像:
PhoneList::~PhoneList()
{
delete head;
}
请谨慎使用Delete(int id)
方法,将您要删除的节点的next
指针归零(如果它位于列表中间)(即它不是& #39; t已经为零)。否则你会失去列表的其余部分。