// var1.h class A { static int var1; }; template class B : public A { T *pointer; public: T *returnVar() { if(var1 != 0) return pointer; else return NULL; } }; // var1.cpp #include "var1.h" int A::var1 = 0;