我理解这可能是一个非常基本的问题,但是如果您在c++中有一个非常简单的链接列表,如下所示.
class link{
link * next;
~link(void){
delete next;
}
}如果在这个链表的头上调用了析构函数,并且删除了它指向下一个节点的指针,那么下一个节点的析构函数是否被调用?有效地将调用头上的析构函数删除列表中的所有链接。还是名单上的其余部分都挂在那里?
发布于 2014-09-05 19:41:57
是的,删除对象时将调用对象的析构函数。因此,在此实现中,删除节点之后的所有节点(或链接,如果您愿意)也将被销毁。
https://stackoverflow.com/questions/25692834
复制相似问题