c++ - 双向链表的复制构造函数

标签 c++ copy-constructor doubly-linked-list

我正在为双向链表编写代码。 现在对于复制构造函数这是一个好方法。只是复制 head 和 tail 的指针或将整个列表复制到新列表? 谢谢。

最佳答案

复制整个列表。

我想说复制构造函数的主要目的之一是复制整个列表并制作两个独立的对象。

将整个列表复制/移动到一个新列表,以避免由于破坏其中一个拷贝、意外修改和许多其他问题而导致的意外悬挂指针...... 复制后应该有两个独立的拷贝。


此外,由于您必须编写复制构造函数,因此您应该这样写:

  • 析构函数
  • 复制赋值运算符
  • 移动构造函数
  • 移动赋值运算符

阅读Rule of five .此外,您可以利用 copy-and-swap成语。

关于c++ - 双向链表的复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946804/

相关文章:

c++ - 为什么在此代码中未调用复制构造函数

c++ - 双向链表中的自定义数据类型

c++ - 为什么 std::declval 添加引用?

c++ - 创建 D3D9 硬件覆盖问题

c++ - 为什么当 cout 显示正确大小时 printf 显示 vector 大小为 0?

java - 复制构造函数

c++ - 简单的 Qt 嵌入式窗口问题

c++ - Boost MultiArray 复制构造函数

c - 双向链表错误

将 typedef 语句放入双向链表的类中时出现 C++ 错误