SlideShare una empresa de Scribd logo
1 de 20
• 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)
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.
• 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 !
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.
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:
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
Selecciona
 propiedades y luego
haz clic sobre C/C++
              General
Selecciona path and symbol




     Luego selecciona GNU C++
Selecciona Add…
Selecciona File system…
Ubica la ruta donde se
encuentra la carpeta
LibsGenericas
Presiona Apply y luego OK
Presiona Yes
Selecciona Folder


Coloca nuevamente el cursor sobre tu
Proyecto, haz clic en el botón derecho
del ratón y selecciona New
Selecciona Advanced >>
Desmarca la primera
      opción y marca la tercera




Coloca la ruta donde se
encuentra la carpeta de las
LibsGenericas
La carpeta LibsGenericas debe
aparecer en tu proyecto.
El ajuste debe hacerlo
en cada proyecto que
      programe
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).

Más contenido relacionado

Similar a Tutorial para crear_clases_genericas

Similar a Tutorial para crear_clases_genericas (20)

Tutorial neatbeans(3)
Tutorial neatbeans(3)Tutorial neatbeans(3)
Tutorial neatbeans(3)
 
Tutorial neatbeans(3)
Tutorial neatbeans(3)Tutorial neatbeans(3)
Tutorial neatbeans(3)
 
U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
 
Tutorial de Neatbeans
Tutorial de NeatbeansTutorial de Neatbeans
Tutorial de Neatbeans
 
Netbeans
NetbeansNetbeans
Netbeans
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
 
introduccion-a-netbeans
introduccion-a-netbeansintroduccion-a-netbeans
introduccion-a-netbeans
 
1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans
 
Manual de Netbeans
Manual de NetbeansManual de Netbeans
Manual de Netbeans
 
1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans
 
1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans
 
Introduccion a netbeans
Introduccion a netbeansIntroduccion a netbeans
Introduccion a netbeans
 
Nueva Actividad
Nueva ActividadNueva Actividad
Nueva Actividad
 
Netbeans manual
Netbeans manual Netbeans manual
Netbeans manual
 
1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans1 introduccioi81n-a-netbeans
1 introduccioi81n-a-netbeans
 
MANUAL NETBEANS 2
MANUAL NETBEANS 2MANUAL NETBEANS 2
MANUAL NETBEANS 2
 
manual 1
manual 1manual 1
manual 1
 
MANUAL
MANUAL MANUAL
MANUAL
 
Manualnetbeans2 141006101152-conversion-gate02jjj
Manualnetbeans2 141006101152-conversion-gate02jjjManualnetbeans2 141006101152-conversion-gate02jjj
Manualnetbeans2 141006101152-conversion-gate02jjj
 
Manual netbeans 2
Manual netbeans 2Manual netbeans 2
Manual netbeans 2
 

Tutorial para crear_clases_genericas

  • 1.
  • 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
  • 8. Selecciona propiedades y luego haz clic sobre C/C++ General
  • 9. Selecciona path and symbol Luego selecciona GNU C++
  • 12. Ubica la ruta donde se encuentra la carpeta LibsGenericas
  • 13. Presiona Apply y luego OK
  • 15. Selecciona Folder Coloca nuevamente el cursor sobre tu Proyecto, haz clic en el botón derecho del ratón y selecciona New
  • 17. Desmarca la primera opción y marca la tercera Coloca la ruta donde se encuentra la carpeta de las LibsGenericas
  • 18. La carpeta LibsGenericas debe aparecer en tu proyecto.
  • 19. El ajuste debe hacerlo en cada proyecto que programe
  • 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).