8. ¿Qué relación hay entre las plantillas
y el polimorfismo?
Puede
pensarse que las plantillas y el polimorfismo son dos utilidades
que se excluyen mutuamente. Aunque es verdad que el parecido entre
ambas es grande, hay también algunas diferencias que pueden
hacer necesarias ambas características.
El
polimorfismo necesita punteros y su generalidad se limita a jerarquías.
Recuérdese que el polimorfismo se basa en que en el momento
de compilación se desconoce a qué clase de la jerarquía
va a apuntar un puntero que se ha definido como puntero a la clase
base.
Desde
este punto de vista las plantillas pueden considerarse como una
ampliación del polimorfismo.
Una
desventaja de las plantillas es que tienden a crear un código
ejecutable grande porque se crean tantas versiones de las funciones
como son necesarias.