读书人

关于单向链表的一点有关问题

发布时间: 2013-12-13 00:50:19 作者: rapoo

关于单向链表的一点问题
初学数据结构,在实现单向链表时,总是无法编译,代码如下:

Node1.h
#ifndef NODE1_H
#define NODE1_H

#include <iostream>
template<class T>
class Node1 {
public:
T data;
Node1<T>* next;
Node1() {
next = NULL;
}
};
#endif


Linklist1.h
#ifndef LINKLIST1_H
#define LINKLIST1_H

#include "Node1.h"
template <class T>
class LinkList1 {
private:
Node1<T>* head;
void Init();
public:
LinkList1();
~LinkList1();
};

#endif

LinkList1.cpp
#include "LinkList1.h"

template <class T>
void LinkList1<T>::Init() {
head = new Node1<T>;
}

template <class T>
LinkList1<T>::LinkList1() {
Init();
}

template <class T>
LinkList1<T>::~LinkList1() {
delete head;
}

为了各位查看方便,所有其他函数都没有贴上来;
主函数如下:
#include <iostream>
#include "LinkList1.h"

using namespace std;

int main() {
LinkList1<int> myList;

return 0;
}
主函数中想要声明一个int型的链表,编译时发生如下错误:
obj\Debug\C++\test\main.o||In function `main':|
E:\C++\test\main.cpp|7|undefined reference to `LinkList1<int>::LinkList1()'|
E:\C++\test\main.cpp|9|undefined reference to `LinkList1<int>::~LinkList1()'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 1 seconds) ===|

但是明明构造函数和析构函数我都写了的,那这个错误到底应该怎么样修改呢,求各位大神解释
[解决办法]
把Linklist1的声明和实现放到一个文件中试一下
或者在.h文件中 include"LinkList1.cpp"
看看可不可以

读书人网 >C++

热点推荐