bug for static functions in template class

Here is myc ode, I could compile it, but could not link. Any body has any idea? Thanks.

===================

#include <iostream.h>

template < class T>

class Base

{

public:

Base();

static int getNum();

static void setNum(int);

private:

static int m_num;

};

static int m_num = 0;

template <class T>

int Base<T>::getNum()

{

return m_num;

}

template <class T>

void Base<T>::setNum(int num)

{

m_num=num;

}

void main()

{

Base<int> A;

A.setNum(10);

Base<double> B;

cout<< "Base<T>::m_mum is " << B.getNum() <<endl;

}