SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
CLASES II


     ING. CAMILO TÁUTIVA MANCERA




Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Introducción
     Los      constructores     se     ejecutan
     automaticamente cuando se crea un objeto
     de una clase e inicializan los datos
     miembro
     Los destructores no entregan ningún valor
     ni reciben ningún parámetro, tampoco se
     pueden sobrecargar
     Mediante la interfaz, un usuario u otro
     objeto se cominican con un objeto
     Funciones set y get
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Temas
     Tipos de funciones miembro
     Tipos de constructores
     Funciones set y get
     Objetos y funciones miembro const
     Inicializadores de miembros
     Composición
     Funciones y clases friend (amigas)

Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Tipos de funciones miembros
   Constructores y destructores: se les llama
   automaticamente cuando un objeto se crea o se
   destruye
   set y get: permiten a los usuarios establecer
   (escribir) y leer (obtener) los valores de los datos
   miembro
   Operadores: permiten definir operadores
   estandar para los objetos de las clases
   Iteradores: procesan colecciones de objetos
   tales como arrays y listas

Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Tipos de constructores
   Por           defecto:               constructor               que          no   tiene
   argumentos
   Alternativo (predeterminado): constructor
   con parámetros
   Sobrecargado:           proporcionan      medios
   alternativos para inicializar objetos nuevos de
   una clase
   De copia: se crea automaticamente por el
   compilador cuando un objeto se pasa por valor;
   se llama también cuando un objeto se declara e
   inicializa con otro objeto del mismo tipo

Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Constructor por defecto
// el constructor no requiere parametros
Punto::Punto()
{
   x=0;
   y=0;
} // fin del constructor Punto

Constructor alternativo

// el constructor requiere dos parametros enteros y utiliza funciones miembro para
// inicializar los datos miembro
Punto::Punto(int valx, int valy)
{
   fijarx(valx);
   fijary(valy);
} // fin del constructor Punto


 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Funciones set y get
     set (establecer): permite al usuario establecer
     (escribir) los valores de los datos miembros
     privados

     get (obtener): permite al usuario leer los
     valores de los datos miembros privados

    Tienen la ventaja de que se puede
    controlar el formato en el cual se
   muestra la información y examinar
 cualquier intento de modificar los datos

Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Función set

// establece un nuevo valor para Tiempo de acuerdo con la hora universal,
// realiza la validación de los valores de datos y establece los valores no válidos en cero
void Tiempo::estableceHora( int h, int m, int s )
{
   hora = ( h >= 0 && h < 24 ) ? h : 0;
   minuto = ( m >= 0 && m < 60 ) ? m : 0;
   segundo = ( s >= 0 && s < 60 ) ? s : 0;
} // fin de la función estableceHora

Función get
// imprime Tiempo en formato estándar
void Tiempo::imprimeEstandar()
{
   cout << ( ( hora == 0 || hora == 12 ) ? 12 : hora % 12 )
      << ":" << setfill( '0' ) << setw( 2 ) << minuto
      << ":" << setw( 2 ) << segundo
      << ( hora < 12 ? " AM" : " PM" );
} // fin de la función imprimeEstandar

 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Objetos y funciones miembro
const
  Algunos objetos necesitan ser modificados y otros no; la
  palabra const especifica que un objeto no se puede
  modificar y que cualquier intento de hacerlo provocara un
  error
                Tiempo despierta( 6, 45, 0 );            // objeto no constante
                const Tiempo mediodia( 12, 0, 0 ); // objeto constante

   El compilador deshabilita las llamadas a funciones
   miembro para objetos const, a menos que las funciones
   miembro por si mismas se declaren como const. Además el
   compilador no permite a las funciones miembro declaradas
   como const modificar al objeto
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Función miembro const

// imprime Tiempo en formato universal                                          Una función se
void Tiempo::imprimeUniversal() const
{                                                                               especifica como
   cout << setfill( '0' ) << setw( 2 ) << hora << ":"                           const tanto en su
      << setw( 2 ) << minuto << ":"
      << setw( 2 ) << segundo;                                                  prototipo como
                                                                                en su definición
} // fin de la función imprimeUniversal




 La declaración const no esta permitida
   para constructores y destructores

                                                                                                1
 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Inicializadores de miembros
     No está permitido inicializar un dato miembro de
     una clase cuando ésta se define
     Se busca inicializar los datos miembro cada vez
     que se crea una instancia específica de la clase
     (objeto)
     El sitio lógico para inicializar los datos miembro
     está dentro del constructor de la clase, que utiliza
     expresiones de asignación
      Ciertos tipos de datos (constantes y referencias)
     no pueden ser valores asignados, para esto se
     utilizan los Inicializadores de miembros
                                                                               1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Ejemplo inicializadores de miembros
class Incremento {
public:
  Incremento( int c = 0, int i = 1 ); // constructor predeterminado
  void sumaIncremento()
  {
     cuenta += incremento;
  } // fin de la función sumaIncremento
  void imprime() const; // imprime cuenta e incremento
private:
  int cuenta;
  const int incremento; // dato miembro constante
}; // fin de la clase Incremento

// constructor
Incremento::Incremento( int c, int i )
   : cuenta( c ), // inicializador para un miembro no constante
     incremento( i ) // se requiere inicializador para un miembro constante
{
   // cuerpo vacío
} // fin del constructor Incremento

                                                                                1
 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Composición
    Una clase compuesta es aquella que contiene
    datos miembro que son así mismo objetos de
    otras clases
   int main()
   {
     Fecha nacimiento( 7, 24, 1949 );
     Fecha contratacion( 3, 12, 1988 );
     Empleado gerente( "Juan", "Perez", nacimiento, contratacion );
     cout << 'n';
     gerente.imprime();
     cout << "nVerifica el constructor Fecha con valores no validos:n";
     Fecha ultimoDiaFest( 14, 35, 1994 ); // mes y día no válidos
     cout << endl;
     return 0;
   } // fin de main
                                                                               1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Funciones y clases amigas
   Son funciones que se definen
   fuera del alcance de la clase y
   aun así tienen el derecho de
   acceder a los miembros no
   publicos de la clase
   Las funciones independientes o
   las clases completas se pueden
   declarar para que sean amigas de
   otra clase
                                                                               1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Ejemplo funciones amigas
 // Definición de la clase Cuenta
 class Cuenta {
    friend void estableceX( Cuenta &, int ); // declaración de amistad
 public:
    Cuenta() // constructor
       : x( 0 ) // inicializa x en 0
    {
       // cuerpo vacío
    } // fin del constructor Cuenta
    // despliega x
    void imprime() const
    {
       cout << x << endl;
    } // fin de lafunción imprime
 private:
    int x; // dato miembro
 }; // fin de la clase Cuenta


  La amistad se otorga, no se toma
  La amistad no es simétrica ni transitiva
                                                                               1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Apuntador this
     Cada objeto tiene acceso a su propia dirección a
     través de un apuntador llamado this

      // imprime x mediante el uso implícito y explícito de apuntadores this;
      // se requieren paréntesis alrededor de *this
      void Prueba::imprime() const
      {
         // uso implícito del apuntador this para acceder al miembro x
         cout << "       x = " << x;
         // uso explícito del apuntador this para acceder al miembro x
         cout << "n this->x = " << this->x;
         // uso explícito del apuntador this desreferenciado y
         // el operador punto para acceder al miembro x
         cout << "n(*this).x = " << ( *this ).x << endl;
      } // fin de la función imprime
                                                                                1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Operadores new y delete
     Administración de memoria dinámica: controlar
     la asignación y liberación de memoria en un
     programa, para cualquier tipo de dato (o clase)
     Se lleva a cabo con los operadores new y delete
                Tiempo *ptrTiempo;
                ptrTiempo= new Tiempo;
                delete ptrTiempo;


    Se utiliza el encabezado <new>
                                                                               1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Miembros de clase static
     Una variable de clase static (estática) representa
     información “propia de la clase”, es decir una
     propiedad de la clase, no de un objeto especifico
     de la clase
     Los datos miembro estáticos tienen alcance de
     clase y se pueden declarar como public, private o
     protected
     Los miembros estáticos de una clase existen
     incluso cuando no existen objetos de la clase
     Acceso: Nombreclase::Miembroestatico
                                                                               1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Ejemplo dato private y funcion public static
 // Definición de la clase Empleado
 class Empleado {
 public:
    Empleado() // constructor
    // Función miembro estática
    static int obtienecuenta();
 private:
    char *nombre;
    char *apellido
   // dato miembro estático
    static int cuenta;
 }; // fin de la clase Empleado


                                  Nombreclase::Miembroestatico
                   Public:        A través de cualquier objeto de dicha clase
Acceso                                 A través de una función miembro
                  Private y            public static
                  protected
                                        Nombreclase::Nombrefuncion
                                                                                1
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Clases contenedoras e
iteradoras
    Las clases contenedoras son clases diseñadas para contener
    colecciones de objetos (arreglos, pilas, colas, arboles, etc.)
    Un iterador es un objeto que devuelve el siguiente
    elemento de una colección (o realiza alguna acción sobre el
    siguiente elemento de una colección)

Clases proxi
    La clase proxi es una clase que solo conoce la interfaz
    pública de su clase y permite a los usuarios utilizar los
    servicios de la clase sin dar acceso a los detalles de
    implementación
                                                                               2
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
Bibliografia
     Deitel H., Deitel P., “Como programar en
     C++”, cuarta edición. Pearson educación.
     Capítulo 7
     Joyanes A. Luis, “Prograamción en C++,
     algoritmos, estructuras de datos y objetos”.
     Parte I, Capítulo 8; parte II, Capítulo 13



                                                                               2
Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II

Weitere ähnliche Inhalte

Was ist angesagt?

Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...David Zapateria Besteiro
 
Java class library
Java class libraryJava class library
Java class libraryLCA
 
Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2K Manuel TN
 
Gu is awt_swing
Gu is awt_swingGu is awt_swing
Gu is awt_swingLCA
 
Examen de Turbo C
Examen de Turbo CExamen de Turbo C
Examen de Turbo Ctacubomx
 
Modelo proyecto
Modelo proyectoModelo proyecto
Modelo proyectoLCA
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Practica Dos Delphi
Practica Dos DelphiPractica Dos Delphi
Practica Dos DelphiJose Ponce
 
Programar En Matlab
Programar En MatlabProgramar En Matlab
Programar En MatlabSaul Bernal
 
Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012ecuatareas
 
Jade 1 Agents principios básicos
Jade 1 Agents principios básicosJade 1 Agents principios básicos
Jade 1 Agents principios básicosOctavio Abundez
 

Was ist angesagt? (18)

PROGRAMACIÓN EN JAVA
PROGRAMACIÓN EN JAVAPROGRAMACIÓN EN JAVA
PROGRAMACIÓN EN JAVA
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Java class library
Java class libraryJava class library
Java class library
 
Swin01
Swin01Swin01
Swin01
 
Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2
 
Gu is awt_swing
Gu is awt_swingGu is awt_swing
Gu is awt_swing
 
Curso netcsharp
Curso netcsharpCurso netcsharp
Curso netcsharp
 
Examen de Turbo C
Examen de Turbo CExamen de Turbo C
Examen de Turbo C
 
Modelo proyecto
Modelo proyectoModelo proyecto
Modelo proyecto
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Practica Dos Delphi
Practica Dos DelphiPractica Dos Delphi
Practica Dos Delphi
 
Programar En Matlab
Programar En MatlabProgramar En Matlab
Programar En Matlab
 
Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012Capítulo 7 sincronización de procesos 09 01-2012
Capítulo 7 sincronización de procesos 09 01-2012
 
Sesion 02 clases en_vb_net
Sesion 02 clases en_vb_netSesion 02 clases en_vb_net
Sesion 02 clases en_vb_net
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Jade 1 Agents principios básicos
Jade 1 Agents principios básicosJade 1 Agents principios básicos
Jade 1 Agents principios básicos
 

Ähnlich wie Clases (20)

Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
 
Cplus
CplusCplus
Cplus
 
Sesion 4
Sesion 4Sesion 4
Sesion 4
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
Programación C++.pdf
Programación C++.pdfProgramación C++.pdf
Programación C++.pdf
 
Practica1
Practica1Practica1
Practica1
 
Informe tecnicou1
Informe tecnicou1Informe tecnicou1
Informe tecnicou1
 
Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005Guia de Laboratorios 2 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005
 
Intro classes(1)
Intro classes(1)Intro classes(1)
Intro classes(1)
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
C++
C++C++
C++
 
C++
C++C++
C++
 
Manual Básico de Programación en C++
Manual Básico de Programación en C++Manual Básico de Programación en C++
Manual Básico de Programación en C++
 
C++
C++C++
C++
 

Kürzlich hochgeladen

Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfClima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfConstructiva
 
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESACOPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESADanielAndresBrand
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..JoseRamirez247144
 
EVALUACIÓN PARCIAL de seminario de .pdf
EVALUACIÓN PARCIAL de seminario de  .pdfEVALUACIÓN PARCIAL de seminario de  .pdf
EVALUACIÓN PARCIAL de seminario de .pdfDIEGOSEBASTIANCAHUAN
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxCONSTRUCTORAEINVERSI3
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxedwinrojas836235
 
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptxTEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptxFrancoSGonzales
 
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYPPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYCarlosAlbertoVillafu3
 
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-ComunicacionesIMSA
 
Contabilidad universitaria Septima edición de MCGrawsHill
Contabilidad universitaria Septima edición de MCGrawsHillContabilidad universitaria Septima edición de MCGrawsHill
Contabilidad universitaria Septima edición de MCGrawsHilldanilojaviersantiago
 
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfinformacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfPriscilaBermello
 
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptxTIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptxKevinHeredia14
 
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassJhonnyvalenssYupanqu
 
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docxPLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docxwilliamzaveltab
 
Presentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptxPresentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptxDanielFerreiraDuran1
 
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxCORPORACIONJURIDICA
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfJaquelinRamos6
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzassuperamigo2014
 
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
modelo de flujo maximo unidad 4 en modelos de optimización de recursosmodelo de flujo maximo unidad 4 en modelos de optimización de recursos
modelo de flujo maximo unidad 4 en modelos de optimización de recursosk7v476sp7t
 
Gestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptxGestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptxignaciomiguel162
 

Kürzlich hochgeladen (20)

Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfClima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
 
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESACOPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
COPASST Y COMITE DE CONVIVENCIA.pptx DE LA EMPRESA
 
Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..Trabajo de Sifilisn…………………………………………………..
Trabajo de Sifilisn…………………………………………………..
 
EVALUACIÓN PARCIAL de seminario de .pdf
EVALUACIÓN PARCIAL de seminario de  .pdfEVALUACIÓN PARCIAL de seminario de  .pdf
EVALUACIÓN PARCIAL de seminario de .pdf
 
Efectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptxEfectos del cambio climatico en huanuco.pptx
Efectos del cambio climatico en huanuco.pptx
 
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docxModelo de convenio de pago con morosos del condominio (GENÉRICO).docx
Modelo de convenio de pago con morosos del condominio (GENÉRICO).docx
 
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptxTEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
 
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAYPPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
PPT DIAGNOSTICO DAFO Y CAME MEGAPUERTO CHANCAY
 
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
Teleconferencia Accionistas Q1 2024 . Primer Trimestre-
 
Contabilidad universitaria Septima edición de MCGrawsHill
Contabilidad universitaria Septima edición de MCGrawsHillContabilidad universitaria Septima edición de MCGrawsHill
Contabilidad universitaria Septima edición de MCGrawsHill
 
informacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdfinformacion-finanTFHHETHAETHciera-2022.pdf
informacion-finanTFHHETHAETHciera-2022.pdf
 
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptxTIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
TIPOS DE PLANES administracion una perspectiva global - KOONTZ.pptx
 
exportacion y comercializacion de palta hass
exportacion y comercializacion de palta hassexportacion y comercializacion de palta hass
exportacion y comercializacion de palta hass
 
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docxPLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
PLAN LECTOR JOSÉ MARÍA ARGUEDAS (1).docx
 
Presentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptxPresentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptx
 
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsxINFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
INFORMATIVO CIRCULAR FISCAL - RENTA 2023.ppsx
 
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdfDELITOS CONTRA LA GESTION PUBLICA PPT.pdf
DELITOS CONTRA LA GESTION PUBLICA PPT.pdf
 
gua de docente para el curso de finanzas
gua de docente para el curso de finanzasgua de docente para el curso de finanzas
gua de docente para el curso de finanzas
 
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
modelo de flujo maximo unidad 4 en modelos de optimización de recursosmodelo de flujo maximo unidad 4 en modelos de optimización de recursos
modelo de flujo maximo unidad 4 en modelos de optimización de recursos
 
Gestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptxGestion de rendicion de cuentas viaticos.pptx
Gestion de rendicion de cuentas viaticos.pptx
 

Clases

  • 1. CLASES II ING. CAMILO TÁUTIVA MANCERA Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 2. Introducción Los constructores se ejecutan automaticamente cuando se crea un objeto de una clase e inicializan los datos miembro Los destructores no entregan ningún valor ni reciben ningún parámetro, tampoco se pueden sobrecargar Mediante la interfaz, un usuario u otro objeto se cominican con un objeto Funciones set y get Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 3. Temas Tipos de funciones miembro Tipos de constructores Funciones set y get Objetos y funciones miembro const Inicializadores de miembros Composición Funciones y clases friend (amigas) Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 4. Tipos de funciones miembros Constructores y destructores: se les llama automaticamente cuando un objeto se crea o se destruye set y get: permiten a los usuarios establecer (escribir) y leer (obtener) los valores de los datos miembro Operadores: permiten definir operadores estandar para los objetos de las clases Iteradores: procesan colecciones de objetos tales como arrays y listas Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 5. Tipos de constructores Por defecto: constructor que no tiene argumentos Alternativo (predeterminado): constructor con parámetros Sobrecargado: proporcionan medios alternativos para inicializar objetos nuevos de una clase De copia: se crea automaticamente por el compilador cuando un objeto se pasa por valor; se llama también cuando un objeto se declara e inicializa con otro objeto del mismo tipo Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 6. Constructor por defecto // el constructor no requiere parametros Punto::Punto() { x=0; y=0; } // fin del constructor Punto Constructor alternativo // el constructor requiere dos parametros enteros y utiliza funciones miembro para // inicializar los datos miembro Punto::Punto(int valx, int valy) { fijarx(valx); fijary(valy); } // fin del constructor Punto Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 7. Funciones set y get set (establecer): permite al usuario establecer (escribir) los valores de los datos miembros privados get (obtener): permite al usuario leer los valores de los datos miembros privados Tienen la ventaja de que se puede controlar el formato en el cual se muestra la información y examinar cualquier intento de modificar los datos Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 8. Función set // establece un nuevo valor para Tiempo de acuerdo con la hora universal, // realiza la validación de los valores de datos y establece los valores no válidos en cero void Tiempo::estableceHora( int h, int m, int s ) { hora = ( h >= 0 && h < 24 ) ? h : 0; minuto = ( m >= 0 && m < 60 ) ? m : 0; segundo = ( s >= 0 && s < 60 ) ? s : 0; } // fin de la función estableceHora Función get // imprime Tiempo en formato estándar void Tiempo::imprimeEstandar() { cout << ( ( hora == 0 || hora == 12 ) ? 12 : hora % 12 ) << ":" << setfill( '0' ) << setw( 2 ) << minuto << ":" << setw( 2 ) << segundo << ( hora < 12 ? " AM" : " PM" ); } // fin de la función imprimeEstandar Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 9. Objetos y funciones miembro const Algunos objetos necesitan ser modificados y otros no; la palabra const especifica que un objeto no se puede modificar y que cualquier intento de hacerlo provocara un error Tiempo despierta( 6, 45, 0 ); // objeto no constante const Tiempo mediodia( 12, 0, 0 ); // objeto constante El compilador deshabilita las llamadas a funciones miembro para objetos const, a menos que las funciones miembro por si mismas se declaren como const. Además el compilador no permite a las funciones miembro declaradas como const modificar al objeto Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 10. Función miembro const // imprime Tiempo en formato universal Una función se void Tiempo::imprimeUniversal() const { especifica como cout << setfill( '0' ) << setw( 2 ) << hora << ":" const tanto en su << setw( 2 ) << minuto << ":" << setw( 2 ) << segundo; prototipo como en su definición } // fin de la función imprimeUniversal La declaración const no esta permitida para constructores y destructores 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 11. Inicializadores de miembros No está permitido inicializar un dato miembro de una clase cuando ésta se define Se busca inicializar los datos miembro cada vez que se crea una instancia específica de la clase (objeto) El sitio lógico para inicializar los datos miembro está dentro del constructor de la clase, que utiliza expresiones de asignación Ciertos tipos de datos (constantes y referencias) no pueden ser valores asignados, para esto se utilizan los Inicializadores de miembros 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 12. Ejemplo inicializadores de miembros class Incremento { public: Incremento( int c = 0, int i = 1 ); // constructor predeterminado void sumaIncremento() { cuenta += incremento; } // fin de la función sumaIncremento void imprime() const; // imprime cuenta e incremento private: int cuenta; const int incremento; // dato miembro constante }; // fin de la clase Incremento // constructor Incremento::Incremento( int c, int i ) : cuenta( c ), // inicializador para un miembro no constante incremento( i ) // se requiere inicializador para un miembro constante { // cuerpo vacío } // fin del constructor Incremento 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 13. Composición Una clase compuesta es aquella que contiene datos miembro que son así mismo objetos de otras clases int main() { Fecha nacimiento( 7, 24, 1949 ); Fecha contratacion( 3, 12, 1988 ); Empleado gerente( "Juan", "Perez", nacimiento, contratacion ); cout << 'n'; gerente.imprime(); cout << "nVerifica el constructor Fecha con valores no validos:n"; Fecha ultimoDiaFest( 14, 35, 1994 ); // mes y día no válidos cout << endl; return 0; } // fin de main 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 14. Funciones y clases amigas Son funciones que se definen fuera del alcance de la clase y aun así tienen el derecho de acceder a los miembros no publicos de la clase Las funciones independientes o las clases completas se pueden declarar para que sean amigas de otra clase 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 15. Ejemplo funciones amigas // Definición de la clase Cuenta class Cuenta { friend void estableceX( Cuenta &, int ); // declaración de amistad public: Cuenta() // constructor : x( 0 ) // inicializa x en 0 { // cuerpo vacío } // fin del constructor Cuenta // despliega x void imprime() const { cout << x << endl; } // fin de lafunción imprime private: int x; // dato miembro }; // fin de la clase Cuenta La amistad se otorga, no se toma La amistad no es simétrica ni transitiva 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 16. Apuntador this Cada objeto tiene acceso a su propia dirección a través de un apuntador llamado this // imprime x mediante el uso implícito y explícito de apuntadores this; // se requieren paréntesis alrededor de *this void Prueba::imprime() const { // uso implícito del apuntador this para acceder al miembro x cout << " x = " << x; // uso explícito del apuntador this para acceder al miembro x cout << "n this->x = " << this->x; // uso explícito del apuntador this desreferenciado y // el operador punto para acceder al miembro x cout << "n(*this).x = " << ( *this ).x << endl; } // fin de la función imprime 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 17. Operadores new y delete Administración de memoria dinámica: controlar la asignación y liberación de memoria en un programa, para cualquier tipo de dato (o clase) Se lleva a cabo con los operadores new y delete Tiempo *ptrTiempo; ptrTiempo= new Tiempo; delete ptrTiempo; Se utiliza el encabezado <new> 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 18. Miembros de clase static Una variable de clase static (estática) representa información “propia de la clase”, es decir una propiedad de la clase, no de un objeto especifico de la clase Los datos miembro estáticos tienen alcance de clase y se pueden declarar como public, private o protected Los miembros estáticos de una clase existen incluso cuando no existen objetos de la clase Acceso: Nombreclase::Miembroestatico 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 19. Ejemplo dato private y funcion public static // Definición de la clase Empleado class Empleado { public: Empleado() // constructor // Función miembro estática static int obtienecuenta(); private: char *nombre; char *apellido // dato miembro estático static int cuenta; }; // fin de la clase Empleado Nombreclase::Miembroestatico Public: A través de cualquier objeto de dicha clase Acceso A través de una función miembro Private y public static protected Nombreclase::Nombrefuncion 1 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 20. Clases contenedoras e iteradoras Las clases contenedoras son clases diseñadas para contener colecciones de objetos (arreglos, pilas, colas, arboles, etc.) Un iterador es un objeto que devuelve el siguiente elemento de una colección (o realiza alguna acción sobre el siguiente elemento de una colección) Clases proxi La clase proxi es una clase que solo conoce la interfaz pública de su clase y permite a los usuarios utilizar los servicios de la clase sin dar acceso a los detalles de implementación 2 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II
  • 21. Bibliografia Deitel H., Deitel P., “Como programar en C++”, cuarta edición. Pearson educación. Capítulo 7 Joyanes A. Luis, “Prograamción en C++, algoritmos, estructuras de datos y objetos”. Parte I, Capítulo 8; parte II, Capítulo 13 2 Universidad Militar Nueva Granada - Ingeniería Mecatrónica - Programación II