20

Tutorial para crear_clases_genericas

Embed Size (px)

DESCRIPTION

Tutorial para crear clases genéricas en C++

Citation preview

Page 1: Tutorial para crear_clases_genericas
Page 2: Tutorial para crear_clases_genericas

• 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)

Page 3: Tutorial para crear_clases_genericas

• 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.

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

Page 4: Tutorial para crear_clases_genericas

• 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 !

Page 5: Tutorial para crear_clases_genericas

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.

Page 6: Tutorial para crear_clases_genericas

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:

Page 7: Tutorial para crear_clases_genericas

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

Page 8: Tutorial para crear_clases_genericas

Selecciona propiedades y luego

haz clic sobre C/C++ General

Page 9: Tutorial para crear_clases_genericas

Selecciona path and symbol

Luego selecciona GNU C++

Page 10: Tutorial para crear_clases_genericas

Selecciona Add…

Page 11: Tutorial para crear_clases_genericas

Selecciona File system…

Page 12: Tutorial para crear_clases_genericas

Ubica la ruta donde se encuentra la carpeta LibsGenericas

Page 13: Tutorial para crear_clases_genericas

Presiona Apply y luego OK

Page 14: Tutorial para crear_clases_genericas

Presiona Yes

Page 15: Tutorial para crear_clases_genericas

Coloca nuevamente el cursor sobre tu Proyecto, haz clic en el botón derecho del ratón y selecciona New

Selecciona Folder

Page 16: Tutorial para crear_clases_genericas

Selecciona Advanced >>

Page 17: Tutorial para crear_clases_genericas

Desmarca la primera opción y marca la tercera

Coloca la ruta donde se encuentra la carpeta de las LibsGenericas

Page 18: Tutorial para crear_clases_genericas

La carpeta LibsGenericas debe aparecer en tu proyecto.

Page 19: Tutorial para crear_clases_genericas

El ajuste debe hacerlo en cada proyecto que

programe

Page 20: Tutorial para crear_clases_genericas

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).