gpt4 book ai didi

c++ - 在 C++ 中使用链表实现堆栈,复制构造函数

转载 作者:行者123 更新时间:2023-11-30 04:05:10 24 4
gpt4 key购买 nike

我正在尝试使用 C++ 中的链表实现堆栈,但我不知道如何正确编写堆栈类的复制构造函数。

我正在使用以下类:

class Node{
int m_num;
Node* m_pNext;
public:
Node();
~Node();
//and the standard get&set functions..
}


class LinkedList{
int m_size;
Node* m_pHead;
public:
LinkedList();
LinkedList(const LinkedList& obj);
~LinkedList();
//and the standard get&set functions..
}


class Stack{
LinkedList m_stack;
public:
Stack();
Stack(const Stack& copyStack);
~Stack();
}

我确实编写了 LinkedList 类的复制构造函数,并且运行良好。我的问题是 Stack 类,在那里我无法获取当前堆栈的拷贝以便在堆栈中进行搜索(涉及 pop() 等)。

我确实尝试写了以下内容:

Stack::Stack(const Stack &copyStack){
LinkedList m_stack = copyStack.m_stack;
}

正如我所说,它不起作用..

我是 C++ 的新手,我想我在那里遗漏了一些东西..

最佳答案

编译器生成的复制构造函数可以工作。

如果你真的想手动实现,那么:

Stack(const Stack& copyStack) : m_stack(copyStack.m_stack) {}

请注意,您应该使用构造函数初始化列表。然后使用 LinkedList 的复制构造函数创建 m_stack

当然,这取决于您是否正确实现了 LinkedList(const LinkedList& obj);!

关于c++ - 在 C++ 中使用链表实现堆栈,复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23405152/

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