Sorry if this is a little off topic. I have none experience with gcc, and very little experience with c++. So I am experimenting a bit. I have done a class template, Matrix,and everything is good with it. Just to try, I have derived from this class template a common class, called Relation. As a relation is rapresented as a matrix of double, I have derived it from Matrix<double>. My syntax is good, so I do not receive any error when I compile the relation.cpp file. The problem comes out at linking time: every function which is inherited by Matrix <double> and not redefined causes an error: "home/praise/fuzzycmeans/fuzzycmeans/relation.cpp:42: undefined reference to `Matrix<double>::at(int, int) const' I also have these errors: /usr/include/g++/stl_alloc.h(.text+0xf): undefined reference to `Matrix<double>::Matrix(void)' /usr/include/g++/stl_alloc.h(.text+0x37): undefined reference to `Matrix<double>::~Matrix(void)' /usr/include/g++/stl_alloc.h(.gnu.linkonce.d.__vt_9Relazione+0x24): undefined reference to `Matrix<double>::operator[](int) const' I do not know what this means. Anyone could help? Praise