最初にリンクされたリストのコピー コンストラクターを作成するのは困難でしたが、現在はこのスタックです。何かで頭を殴りたかったのですが、スタックオーバーフローの人たちのことを考えました。ここに問題があります: list.h または stack.h またはそのコンストラクターを変更することはできません。// list.h 内
template <class T>
struct ListItem
{
T value;
ListItem<T> *next;
ListItem<T> *prev;
ListItem(T theVal)
{
this->value = theVal;
this->next = NULL;
this->prev = NULL;
}
};
/* This is the generic List class */
template <class T>
class List
{
ListItem<T> *head;
public:
// Constructor
List();
// Copy Constructor
List(const List<T>& otherList);
}
// In list.cpp
template <class T>
List<T>::List()
{
head=NULL;
}
template <class T>
List<T>::List(const List<T>& otherList)
{
// I have code working for this part
}
template <class T>
List<T>::~List()
{
}
// In stack.h (includes list.cpp)
template <class T>
class Stack
{
List<T> list;
public:
Stack();
Stack(const Stack<T>& otherStack);
~Stack();
void push(T item);
T top();
T pop();
};
// remember top(); pop(); push() functions are working properly in stack.cpp file.
// In stack.cpp (includes stack.h)
Stack(const Stack<T>& otherStack){
}
template <class T>
void Stack<T>::push(T item)
{
}
template <class T>
T Stack<T>::top()
{
}
template <class T>
T Stack<T>::pop()
{
}
0 から 100 までの elem を含むオブジェクト s があります。100 が一番上にあります。今、私たちはこのようなものをコピーします:-
Stack<int> s2(s);
地球上で otherStack 要素にアクセスする方法がわかりません。もちろん、それはリンクされたリストです。しかし、それは Stack.cpp にあり、それにアクセスするにはどうすればよいか、また、このスタックのコピー コンストラクターを作成する方法 (作業コードが望ましい) です。そして、今回もどうぞよろしくお願いいたします。ありがとう。注: コンストラクターを変更することはできません。それはあるがままでなければなりません。今回はすべての人が私の質問を受け取ることを願っています.