Tutorial para crear_clases_genericas
-
Upload
margaritapereira -
Category
Documents
-
view
127 -
download
0
description
Transcript of Tutorial para crear_clases_genericas
![Page 1: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/1.jpg)
![Page 2: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/2.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/3.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/4.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/5.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/8.jpg)
Selecciona propiedades y luego
haz clic sobre C/C++ General
![Page 9: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/9.jpg)
Selecciona path and symbol
Luego selecciona GNU C++
![Page 10: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/10.jpg)
Selecciona Add…
![Page 11: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/11.jpg)
Selecciona File system…
![Page 12: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/12.jpg)
Ubica la ruta donde se encuentra la carpeta LibsGenericas
![Page 13: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/13.jpg)
Presiona Apply y luego OK
![Page 14: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/14.jpg)
Presiona Yes
![Page 15: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/15.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/16.jpg)
Selecciona Advanced >>
![Page 17: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/17.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/18.jpg)
La carpeta LibsGenericas debe aparecer en tu proyecto.
![Page 19: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/19.jpg)
El ajuste debe hacerlo en cada proyecto que
programe
![Page 20: Tutorial para crear_clases_genericas](https://reader031.fdocuments.net/reader031/viewer/2022020218/559491e41a28abbe3e8b4588/html5/thumbnails/20.jpg)
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).