我创建了一个包含链表的类,这个类需要有一个析构函数来删除链表,但是因为delete方法本身调用析构函数,所以我最终会在无限递归调用中执行.
这是代码: -
PolynomialNode::~PolynomialNode()
{
/*PolynomialNode* current_node_ptr = link;
PolynomialNode* header_ptr = link;
int index = 0;
if( link != NULL)
{
while( current_node_ptr != NULL)
{
index++;
current_node_ptr = current_node_ptr->get_link();
}
delete_nodes( &header_ptr, 0, index);
} */
PolynomialNode* current_node_ptr = link;
PolynomialNode* copy_ptr;
while( current_node_ptr != NULL)
{
copy_ptr = current_node_ptr->get_link();
current_node_ptr->set_link(NULL);
delete current_node_ptr;
current_node_ptr = copy_ptr;
}
}
Run Code Online (Sandbox Code Playgroud)
注意我尝试使用递归调用 - 有意删除链表,我仍然遇到同样的问题.
任何帮助将非常感激.
注意:我知道这是一个递归调用,因为当我单步执行调试器时,我可以看到它正在发生.
c++ ×1