int main(){
//Node is some template class
Node<int>* head = new Node<int>[5];
for(int ii = 0; ii < 5; ii++)
{
head[ii].set_Data(ii);
head[ii].set_Link(head + (ii + 1));
if(ii == 4)
{
head[ii].set_Link(NULL);
}
}
delete [] head;
}
template<typename T>
void Node<T>::set_Link(Node* Node_Address)
{
Link = Node_Address;
}
template<typename T>
Node<T>::~Node()
{
delete Link;
cout << "Destructor" << endl;
}
Run Code Online (Sandbox Code Playgroud)
我正在学习链接列表.我不明白为什么我的析构函数被调用15次,而cout语句被打印15次.如果我摆脱声明
head[ii].set_Link(head + (ii + 1));
Run Code Online (Sandbox Code Playgroud)
析构函数只被调用5次,这是有道理的,因为有5个类.当我使用成员函数set_Link()时,为什么调用析构函数,当我只传递指针而不是类时.甚至没有调用复制构造函数.谢谢你的帮助!