error LNK2019: 无法解析的外部符号 "public: __thiscall SeqStack<int>::SeqStack<int>(int)" (??0?$SeqStack@H@@QAE@H@Z),该符号在函数 _main 中被引用

  fatal error LNK1120: 1 个无法解析的外部命令
代码如下:
#include <iostream>
#include <assert.h>
#include "stack.h"
const int stackIncreament = 20;//栈溢出时扩展空间的增量 
template <class T>
class SeqStack:public Stack<T>
{
public:
    SeqStack(int sz = 50);//建立一个空栈
    ~SeqStack(){delete[] elements;}
    void Push(const T& x);
    bool Pop(T& x);
    bool getTop(T &x);
    bool IsEmpty() const
    {
        return (top==-1)?true:false;
    }
    int getSize() const 
    {
        return top+1;
    }
    bool IsFull() const
    {
        return (top==maxSize-1)?true:false;
    }
    void makeEmpty()
    {
        top = -1;
    }
    //friend ostream & operator << (ostream& os,SeqStack<T>& s);
private:
    T *elements;
    int top;
    int maxSize;
    void overflowProcess();
};

template <class T>
void SeqStack<T>::overflowProcess() //扩充栈的存储空间
{
    T * newArray = new T[maxSize+stackIncreament];
    if(newArray = NULL)
    {
        cerr << "存储分配失败" << endl;
        exit(1);
    }
    for(int i=0;i<=top;i++)
    {
        newArray[i] = elements[i];
    }
    maxSize = maxSize + stackIncreament;
    delete []elements;
    elements = newArray;
}

template <class T>
void SeqStack<T>::Push(const T &x)
{
    if(IsFull()==true)
    {
        overflowProcess();
    }
    elements[top+1] = x ;
}

template <class T>
bool SeqStack<T>::Pop(T &x)
{
    if(IsEmpty()==true)
    {
        return false;
    }
    x = elements[top--];
    return true;
}

template <class T>
bool SeqStack<T>::getTop(T &x)
{
    if(IsEmpty()==true)
    {
        return false;
    }
    x = elements[top];
    return true;
}


/ 链式栈2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "LinkedStack.h"
#include <iostream>
using namespace std;

int main()
{
    int a;
    SeqStack<int> ls;
    //cout << "输入一个数压栈";
    cin >> a;
    ls.Push(a);
    ls.getSize();
    ls.getTop(a);
    ls.Pop(a);
    return 0;
}/ 链式栈2.cpp : 定义控制台应用程序的入口点。


const int maxSize = 50;
//enum bool{false,true};
template <class T>
class Stack
{
public:
    Stack(){};//构造函数
    virtual void Push(const T& x) = 0;//压入栈一个元素
    virtual bool Pop(T& x) = 0; //弹出一个元素
    virtual bool getTop(T &x) = 0;//得到头部
    virtual bool IsEmpty() const = 0;//判断是否为空
    virtual bool IsFull() const = 0;//判断是否满了
    virtual int getSize() const = 0;//计算元素个数
};

请高手指点!!!  我用的是vs2005