关于c++模板和类实现时的问题,求助!

我想自定义一个堆(stcak)的实现,代码如下;

#include <iostream>
using namespace std;
const int SIZE=100;
template <typename T>
class iStack
{
public:
    iStack(void);   
    void push(const T &n); 
    void pop();   
    T GetPop();   
    bool empty(); 
    int size();   
    void ClaerStack(); 
    ~iStack(void);  
private:
    T stack[SIZE];  // array to salve elements
    int top;   
};
template<typename T>
iStack<T>::iStack(void)
{
    top=-1;
}

template<typename T>
iStack<T>::push(const T &n)
{
    if (SIZE-1==top)
    {
        cout<<"sorry!spill of the stack!"<<endl;
        return;
    }
    else
    {
        stack[++top]=n;
    }
}
template<typename T>
iStack<T>::pop()
{
    if (-1==top)
    {
        cout<<"no element to delete!"<<endl;
        return;
    }
    else
    {
        top--;
    }
}

template<typename T>
iStack<T>::ClaerStack()
{
    top==-1;
}

template<typename T>
iStack<T>::empty()
{
    if (-1==top)
    {
        return true;
    }
    return false;
}

template<typename T>
iStack<T>::size()
{
    return top+1;
}

template<typename T>
iStack<T>::~iStack(void)
{

} 

编译时,报错如下:

 1>f:\c++代码\stack类模板\stack类模板\istack.cpp(38): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(51): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(57): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(67): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>f:\c++代码\stack类模板\stack类模板\istack.cpp(73): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

函数前缺少类型说明符~~~

看报错啊

不知道问题在哪 啊

函数返回值没给出来,下面定义的时候