Я написал реализацию Stack и Queue (основанный на Linked List). Существует один стек (bigStack
). Например, я разделяю bigStack
(пример: stackA
и stackB
). я pop()
a node от bigStack
, я push()
в stackA
. Точно так же я push()
в stackB
. Я хочу, чтобы bigStack
не изменился. Поэтому я хочу клонировать объект bigStack
. Как клонировать объекты на С++? Или есть другое решение моей проблемы?
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();