select
感谢那些帮助我的人!
我修复了赋值运算符和removeLast函数。
对于removeLast,第二个最后一个节点将指向null,然后它返回最后一个节点
我不确定我的赋值算符是否正常。
以及removeLast函数..
如果你们发现错误,请告诉我!
再次感谢你!答案 0 :(得分:0)
另外,你们可以教我如何声明“ListNode * removeLast();”?
LinkedList::ListNode* LinkedList::removeLast()
您只是将返回类型和类交叉,但ListNode也在LinkedList中声明,因此每当您使用它时都必须将其指定为“LinkedList :: ListNode”。
据我所知,你的析构函数看起来很像。您只需将一个指针设置为等于另一个指针,该指针不会触发复制构造函数。
至于创建深层副本,指针只保存内存地址,它们本身并不是它们。
ListNode *node = head;
只需创建一个指向头节点的指针。要制作副本,您必须执行以下操作:
ListNode node = *head; // sometimes brackets such as (*head) avoids errors
或者
ListNode *node = new ListNode;
*node = *head;
*
在指针名称为“取消引用”之前。它是指向的对象的引用,而不是指针变量。然后,您可以使用正常的复制语义。对于非常简单的类(即所有简单对象),默认的复制行为就足够了。