链表 C++ 中的复制构造函数
Copy Constructor in Linked List C++
我是一名一年级学生,在浏览我的链表笔记时,我看到使用了一个复制构造函数。以前在研究ADT Array based Implementation时,我没有看到复制构造函数。为什么在链表中使用复制构造函数?实现复制构造函数很重要吗?
如果没有真正看到代码,就不可能肯定地说,但我会说,对于 linked-list 实现,很可能 复制构造函数和赋值运算符是必需的,以便 prevent your class from having broken copy semantics 相对于构造函数执行的动态分配,以及 de-allocations 由析构函数执行。
如果您在过去看到没有这些的实现,很可能它是 broken/buggy/wrong,这一点也不罕见在 Internet 上存在无穷无尽的可怕的初学者实现,并在 non-peer-reviewed 教程中作为 "how you should do it" 传递。遗憾的是,它在大学教学中甚至相当普遍 material。
从 a good book, and read about the Rule of Three 开始学习 C++。
然后删除您的实现并使用 std::list
!
我是一名一年级学生,在浏览我的链表笔记时,我看到使用了一个复制构造函数。以前在研究ADT Array based Implementation时,我没有看到复制构造函数。为什么在链表中使用复制构造函数?实现复制构造函数很重要吗?
如果没有真正看到代码,就不可能肯定地说,但我会说,对于 linked-list 实现,很可能 复制构造函数和赋值运算符是必需的,以便 prevent your class from having broken copy semantics 相对于构造函数执行的动态分配,以及 de-allocations 由析构函数执行。
如果您在过去看到没有这些的实现,很可能它是 broken/buggy/wrong,这一点也不罕见在 Internet 上存在无穷无尽的可怕的初学者实现,并在 non-peer-reviewed 教程中作为 "how you should do it" 传递。遗憾的是,它在大学教学中甚至相当普遍 material。
从 a good book, and read about the Rule of Three 开始学习 C++。
然后删除您的实现并使用 std::list
!