2. • La Generalización permite construir
clases bases que sean generales y
puedan ser utilizadas por otras clases
derivadas que se construyan
posteriormente.
• La idea es que las clases bases generales se programen
una sola vez y sean tratadas como una librería
genérica, para evitar la redundancia.
• Ejemplo: Estudiante, Profesor, Empleado,.. son todos
PERSONAS por lo tanto comparten algunas
características comunes.
• Según lo anterior, deberíamos crear una clase base
llamada MPersona (.h y .cpp)
3. Suponga ahora que haremos un
proyecto que trata de
Estudiantes y Profesores. Qué
hacemos? Creamos la carpeta
para el proyecto y copiamos allí
MPersona.h y MPersona.cpp
• Si hacemos otro proyecto que trata de empleados de
una compañía. Qué hacemos? Creamos otra carpeta
para ese proyecto y copiamos allí MPersona.h y
MPersona.cpp
• Al hacerlo así no estamos usando la misma copia de la
clase MPersona... La estamos duplicando....
• INCONVENIENTE: si modificamos una copia de
MPersona, las otras no se están modificando!!!
Entonces estamos creando inconsistencia.
4. • SOLUCIÓN: colocar las clases genéricas en una
carpeta común a todos los proyectos...
• Cada proyecto (todos los que hagan referencia a la
clase base), apuntarán a la misma carpeta de
librerías, permitiendo hacer modificaciones
centralizadas...
Cuando modifique alguna
librería centralizada, todos
los proyectos que las usan
podrán acceder a tales
cambios, pero se hará cada
cambio SÓLO 1 VEZ !
5. Qué debemos hacer para trabajar en forma ordenada
con los proyectos y las clases genéricas ?????
2) Crear una carpeta para el proyecto. En ella se
grabarán todos los archivos relacionados con el
proyecto, salvo aquellos que sean de las clases
genéricas, los cuales se elaboraran una sola vez pero
podrán ser utilizados por todos los proyectos que los
requieran.
• Crear una carpeta en un sitio fijo
dentro del disco destinada para
guardar todos los archivos que se
refieran a clases genéricas.
Sugerencia: Colocar a esa carpeta el
nombre LibsGenericas.
6. 1) Dentro del LibsGenericas pudiesen estar
las clases VGeneral, MPersona y
MArticulo cada una con su archivo .h y
.cpp
2) Ajustar el proyecto que estamos
programando ¿Cómo?
Siga la secuencia de pasos que se
presentan a continuación:
7. Coloca el cursor sobre tu
Proyecto y haz clic sobre
el botón derecho del
ratón.
Selecciona Properties se
encuentra al final de esta
ventana
20. Cada nuevo cambio a una librería no afecta a los
proyectos anteriores que las usan.
Si quiere “actualizar” los proyectos anteriores con los
nuevos cambios, sólo debe “recompilar” cada proyecto
que use la librería.
Cuando recompila, cada proyecto ya tiene acceso a los
cambios incorporados a la clase base.
• En situaciones complejas, es posible
que algún cambio en una librería
pueda afectar a los proyectos
preexistentes, pero incluso frente a
esto existen mecanismos que facilitan
la generalización, como por ejemplo la
sobrecarga de métodos (tema que no
abordaremos en esta asignatura).