gpt4 book ai didi

c++ - 链表和复制构造函数

转载 作者:行者123 更新时间:2023-11-27 23:34:49 24 4
gpt4 key购买 nike

我正在尝试用 C++ 编写一个基本的单链表类。几年前我在数据结构课上做过,但我不记得细节了。

我的 Node 类应该有一个复制构造函数吗?它有一个 Node* 作为成员变量,据我所知,您总是应该为具有动态成员的类编写复制构造函数、析构函数和赋值运算符。但据我在网上看到的,List 类负责节点的复制。真的是这样吗?如果是,为什么?

最佳答案

对于基本单链表类,我建议:

  • 分配每个节点后,不要移动或复制分配后的节点
  • 因此,禁用 Node 类复制构造函数和赋值运算符

如果您不定义它们,C++ 会生成默认的复制构造函数和赋值运算符。我建议您通过将它们声明为私有(private)而不是实现它们来禁用这些默认值。


But from what I've seen on the net, the List class takes care of the copying of Nodes. Is this really the case, and if so, why?

它负责复制节点,因为它支持复制(复制)整个列表(这意味着复制列表中的每个节点)。

您不需要支持复制节点,除非您支持复制整个列表。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com