【发布时间】:2012-10-05 20:20:38
【问题描述】:
我编写了一个堆栈和队列实现(基于链表)。有一个堆栈 (bigStack)。例如,我将bigStack 分开(例如:stackA 和stackB)。我pop() 来自bigStack 的一个节点,我push() 在stackA。同样,我在stackB 中push()。我希望bigStack 不会改变。因此我想克隆bigStack 对象。如何在 C++ 中克隆对象?或者我的问题有其他解决方案吗?
class Stack : public List {
public:
Stack() {}
Stack(const Stack& rhs) {}
Stack& operator=(const Stack& rhs) {};
~Stack() {}
int Top() {
if (head == NULL) {
cout << "Error: The stack is empty." << endl;
return -1;
} else {
return head->nosu;
}
}
void Push(int nosu, string adi, string soyadi, string bolumu) {
InsertNode(0, nosu, adi, soyadi, bolumu);
}
int Pop() {
if (head == NULL) {
cout << "Error: The stack is empty." << endl;
return -1;
} else {
int val = head->nosu;
DeleteNode(val);
return val;
}
}
void DisplayStack(void);
};
那么……
Stack copyStack = veriYapilariDersi;
copyStack.DisplayStack();
【问题讨论】:
-
您只需复制它,这是语言内置的。我认为你还在学习 C++? (另外,C 和 C++ 是不同的语言)
-
为 Stack 实现一个拷贝构造函数,即 Stack(Stack const&)。
标签: c++ data-structures stack queue