martes, 2 de noviembre de 2010

Actividad - Octubre 29.

Constructor Virtual, ¿tiene sentido?

Personalmente creo que el uso de constructores virtuales tiene sentido. Siendo imposible heredar un constructor de una clase padre a una clase hija,  se pueden usar constructores virtuales para crear objetos en una clase "abstracta padre", y al ser virtual se pueden modificar en las subclases hijas la forma en que se quiere que se creen los objetos, de tal modo que se llama al constructor virtual dando cierto tipo de parametros, y se crea un objeto de cierto tipo sin la necesidad de aclarar cual es el constructor específico a usar,

Conceptos aplicados 
 
El uso del polimorfismo se ve aplicado en el programa realizado en clase de la siguiente manera:

Las funciones que pertenecen a las subclases, tienen las mismas funciones que la clase principal, sin embargo, como se están manejando matrices de distinto tipo en cada subclase, las funciones tienen variaciones entre sí.
 
Partiendo de aquí, se aplica el concepto de ligadura estática, para el caso de los constructores (como no se pueden heredar, ni tampoco pueden ser declarados virtuales en C), estos tienen el mismo nombre en cada clase, pero en tiempo de compilación se sabe cual escoger. Sucede algo similar con las funciones get y set (ingresar y mostrar en pantalla la matriz).
 
La ligadura dinámica no se vió utilizada en el ejercicio, ya que la clase padre no tenía una función virtual que llamar en caso de que no se llamara a ninguna de las funciones de las subclases.