2017-01-16 126 views
0

我是第一年级的学生,在浏览我的链接列表时注意到我看到一个拷贝构造函数被使用。以前当我学习基于ADT数组的实现时,我没有看到复制构造函数。为什么在链接列表中使用了复制构造函数?实现复制构造函数很重要吗?在链接列表中复制构造函数C++

+0

你已经试过了什么? –

+0

无论您是复制链接列表的实例,还是复制链接列表的一个元素:无论您何时编写管理自己的资源的类,都应考虑三条规则(参见http://stackoverflow.com/a/4172724/2630032) –

+0

我只是通过拷贝构造函数的实现。它看起来类似于添加节点。我只是不明白为什么他们在链接列表中的深层构造函数。 –

回答

1

没有真正看到它不可能肯定说的代码,但我会说,对于一个链表实现方式中,很有可能所需拷贝构造函数和赋值运算符,以prevent your class from having broken copy semantics相对于由您的构造函数执行的动态分配以及由析构函数执行的解除分配。

如果你看到一个过去没有的实现,它很可能是它被破坏/错误/错误,并且这在互联网上并不常见,其中无尽可怕的初学者在非同行评议的教程中存在实现并被认为是“你应该怎么做”。可悲的是,这在大学的教材中甚至是相当普遍的。

a good book学习C++,并阅读了关于Rule of Three
然后删除您的实施并使用std::list