高手请帮忙解决下这个问题
近期学习数据结构(C++语言版),学到顺序表结构编写了如下的程序表头文件:List.h
#include <iostream.h>
template<class T>
class List{
private:
int n;
int max_size;
T* data; //表元素数组
public:
List(int = 10); //构造函数
~List(){delete []data;} //析构函数
bool empty() const {return n==0;}
int size() const {return n;} //返回表的大小
int locate(const T& x) const; //返回表中元素x位置
bool retrieve(int k,T& x) const; //返回表中第k个元素x
List<T>& insert(int k,const T& x); //在表的位置k处插入元素x
List<T>& erase(int k,T& x); //从表中删除位置k处的元素x
void print_list(ostream& out) const;
};
表实现文件:List.cpp
#include "List.h"
template<class T>
List<T>::List(int max_list_size)
{
//构造函数
max_size = max_list_size;
data = new T[max_size];
n = 0;
}
template<class T>
int List<T>::locate(const T& x) const
{
for(int i = 0; i < n;i++)
if(data[i] == x) return ++i;
return 0;
}
template<class T>
bool List<T>::retrieve(int k,T& x) const
{
//在x中存储表的位置k处的元素并返回true
//表中没有位置k时返回false
if(k<1||k>n) return false;
x = data[k-1];
return true;
}
template<class T>
List<T>& List<T>::insert(int k,const T& x)
{
//将新元素x插入位置k+1处
if(k<0||k>n) throw out_bounds();
if(n==max_size) throw no_mem();
//向后移动元素
for(int i = n - 1;i>=k;i--)
data[i+1] = data[i];
data[k] = x;
n++;
return *this;
}
template<class T>
List<T>& List<T>::erase(int k,T& x)
{
//删除位置k处的元素并存于x中
if(retrieve(k,x)){
//向前移动元素
for(int i = k;i < n;i++)
data[i-1] = data[i];
n--;
return *this;
}
else throw out_bounds();
}
template<class T>
void List<T>::print_list(ostream& out) const
{
//表中元素送到输出流out中
for(int i = 0; i < n;i++)
out<<data[i]<<" ";
}
应用表的文件:MainFile.cpp
#include "List.h"
int main()
{
List<double> myList(8);
for(int i = 0; i < 8;i++)
{
myList.insert(i+1,i*i);
}
return 0;
}
执行编译后出现错误:
Linking...
MainFile.obj : error LNK2001: unresolved external symbol "public: class List<double> & __thiscall List<double>::insert(int,double const &)" (?insert@?$List@N@@QAEAAV1@HABN@Z)
MainFile.obj : error LNK2001: unresolved external symbol "public: __thiscall List<double>::List<double>(int)" (??0?$List@N@@QAE@H@Z)
Debug/ListApp.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.
ListApp.exe - 1 error(s), 0 warning(s)
敬请高手帮忙上述问题,谢谢!