On Friday, 3 October 2014 at 15:44:16 UTC, eles wrote: > class ShapeSurface(T) { > public: > int formula(); that means you have a definition of formula elsewhere (which the linker tries to find, but obviously fails. What you want is class ShapeSurface(T) { public: abstract int formula();