Chào các bạn
mình có 1 vấn đề như sau
mình đang tự định nghĩa 1 template double linked list, nhưng đến phần hàm khởi tạo sao chép, dùng để sao chép 1 list ( do class có thuộc tính con trỏ)
mình làm như sau
thì bị lỗi
file h template
#include <iostream>
using namespace std;
template <typename T>
struct node{
T data;
node *next, *previous;
};
template <typename T>
struct linked{
node <T> *head, *tail;
};
template <class T>
class dll{
private:
linked <T> list;
public:
void print_list();
node <T> *create_node(T );
dll(const dll <T> &);
};
#include "double_linked_list.tpp"
file tpp
template <class T>
dll<T>::dll(const dll <T> &a){
node <T> *temp = a.list.head;
while (temp != NULL){
node <T> *add = new node <T>;
add->data = temp->data;
add->next = NULL;
add->previous = NULL;
if (list.head == NULL) list.head = list.tail = add;
else{
add->next = list.tail->next;
list.tail->next = add;
add->previous = list.tail;
list.tail = add;
}
temp = temp->next;
}
}
ở main
dll <classroom> list_class;
dll <classroom> backup(list_class);
backup.print_list();
lỗi ở đâu nhỉ