Quote Originally Posted by lehe
I wonder if I can use template with polymorphism.
Yes, you can.

Quote Originally Posted by lehe
The problem is that it seems impossible to define a pointer to an uninstantiated template.
Yes, but actually I think that the problem is deeper than that: a B<T> is-a A<T>, so a B<int> is-a A<int>, but a B<float> has nothing to do with an A<int>, and likewise for a C<float>.