コピーコンストラクターの作成に問題があります。以下のコードを検討してください。
List.hで
template <class T>
struct ListNode
{
T value;
ListNode<T> *next;
ListNode<T> *prev;
ListNode(T theVal)
{
this->value = theVal;
this->next = NULL;
this->prev = NULL;
}
};
template <class T>
class List
{
ListNode<T> *head;
public:
List();
List(const List<T>& otherList); // Copy Constructor.
~List();
};
list.cppで
template <class T>
List<T>::List()
{
head=NULL;
}
template <class T>
List<T>::~List()
{
}
template <class T>
List<T>::List(const List<T>& otherList)
{
}
//問題をグーグルで検索しました。コンセプトはシンプルです。新しいヘッドを作成し、そのノードに//古いリストノードの値を割り当てます。//それで私は以下を試しました。
ListNode<T> *old = head; // pointer to old list.
ListNode<T> *new;// pointer to new head.
while (old->next!=NULL){
new->value = old->value;
old = old->next;
}
//唯一の問題は、新しいコピーリストを指す新しいヘッドを作成する方法です。