You only declared ARRAY
in CLASS_A
, you need to define it:
template <const int D>
int CLASS_A<D>::ARRAY[SIZE] = {};
BTW, your SIZE field is redundant, you don't need it, e.g:
template <size_t N>
class CLASS_A
{
public:
static int ARRAY[N];
//.....
};
template <size_t N>
int CLASS_A<N>::ARRAY[N] = {};