我是一年级学生,在浏览我的链接列表时,我看到了一个复制构造函数。以前当我研究基于ADT数组的实现时,我还没有看到复制构造函数。为什么复制构造函数已在链接列表中使用?实现复制构造函数是否很重要?
答案 0 :(得分:1)
如果没有真正看到代码,我们无法肯定地说,但我会说,对于链接列表实现,很可能需要复制构造函数和赋值运算符,对于prevent your class from having broken copy semantics关于构造函数执行的动态分配,以及析构函数执行的解除分配。
如果你看到过去的某个实现没有这些,那么很可能它已被破坏/错误/错误,这在那里并不常见互联网,存在无穷无尽的初学者实施,并作为"你应该怎样做"在非同行评审的教程中。遗憾的是,它在大学教材中甚至相当普遍。
从a good book学习C ++,并阅读Rule of Three
然后删除您的实施并使用std::list
!