SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 
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++
 
Manual cpp. c++..
Manual cpp. c++..Manual cpp. c++..
Manual cpp. c++..
 
C++
C++C++
C++
 

Último

INTELIGENCIA EMOCIONAL -ADMINISTRACION.pdf
INTELIGENCIA EMOCIONAL -ADMINISTRACION.pdfINTELIGENCIA EMOCIONAL -ADMINISTRACION.pdf
INTELIGENCIA EMOCIONAL -ADMINISTRACION.pdfELISATORRES56
 
PPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEODPPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEODferchuxdlinda
 
Gastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaGastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaInstituto de Capacitacion Aduanera
 
FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..angelicacardales1
 
Emprendedores peruanos, empresas innovadoras.pptx
Emprendedores peruanos, empresas innovadoras.pptxEmprendedores peruanos, empresas innovadoras.pptx
Emprendedores peruanos, empresas innovadoras.pptxFERNANDOMIGUELRIVERA1
 
GUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdf
GUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdfGUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdf
GUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdfRasecGAlavazOllirrac
 
VAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa ManaosVAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa Manaosmalenasilvaet7
 
LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...
LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...
LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...EmelynYesmynVegaArre
 
MAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESAS
MAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESASMAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESAS
MAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESASapretellhap
 
EXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptx
EXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptxEXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptx
EXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptxFelicia Escobar
 
METODO MIXTOpresentaciondeadministracion.pptx
METODO MIXTOpresentaciondeadministracion.pptxMETODO MIXTOpresentaciondeadministracion.pptx
METODO MIXTOpresentaciondeadministracion.pptxBrayanParra38
 
INVESTIGACIÓN EN INGENIERIA - El Problema de investigación
INVESTIGACIÓN EN INGENIERIA - El Problema de investigaciónINVESTIGACIÓN EN INGENIERIA - El Problema de investigación
INVESTIGACIÓN EN INGENIERIA - El Problema de investigaciónGabrielaRisco3
 
GERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESAS
GERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESASGERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESAS
GERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESASSilvanabelenCumpasip
 
Libros - Las 48 leyes del Poder vida.pdf
Libros - Las 48 leyes del Poder vida.pdfLibros - Las 48 leyes del Poder vida.pdf
Libros - Las 48 leyes del Poder vida.pdfomd190207
 
modalidades de importaciones de productos
modalidades de importaciones de productosmodalidades de importaciones de productos
modalidades de importaciones de productosRaynelLpezVelsquez
 
REINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEA
REINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEAREINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEA
REINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEAElvisLpez14
 
1 GENERALIDADES Bioestadística y demografia.pdf
1 GENERALIDADES Bioestadística y demografia.pdf1 GENERALIDADES Bioestadística y demografia.pdf
1 GENERALIDADES Bioestadística y demografia.pdfjoanjustiniano98
 
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxCADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxYesseniaGuzman7
 
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Oxford Group
 
Unidad 1 Modelo de Internacionalizacion de la empresas.pdf
Unidad 1 Modelo de Internacionalizacion de la empresas.pdfUnidad 1 Modelo de Internacionalizacion de la empresas.pdf
Unidad 1 Modelo de Internacionalizacion de la empresas.pdfLuisFernandoRozasVil
 

Último (20)

INTELIGENCIA EMOCIONAL -ADMINISTRACION.pdf
INTELIGENCIA EMOCIONAL -ADMINISTRACION.pdfINTELIGENCIA EMOCIONAL -ADMINISTRACION.pdf
INTELIGENCIA EMOCIONAL -ADMINISTRACION.pdf
 
PPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEODPPT Planilla Foro logistica (1).pptDMEDMEOD
PPT Planilla Foro logistica (1).pptDMEDMEOD
 
Gastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importadaGastos que no forman parte del Valor en Aduana de la mercadería importada
Gastos que no forman parte del Valor en Aduana de la mercadería importada
 
FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..FORMATO ASISTENCIA DE CAPACITACION.doc..
FORMATO ASISTENCIA DE CAPACITACION.doc..
 
Emprendedores peruanos, empresas innovadoras.pptx
Emprendedores peruanos, empresas innovadoras.pptxEmprendedores peruanos, empresas innovadoras.pptx
Emprendedores peruanos, empresas innovadoras.pptx
 
GUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdf
GUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdfGUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdf
GUIA DE ESTUDIOS DESARROLLO DE HABILIDADES DIRECTIVAS.pdf
 
VAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa ManaosVAMOS MANAOS, análisis e historia de la empresa Manaos
VAMOS MANAOS, análisis e historia de la empresa Manaos
 
LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...
LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...
LOS BANCOS EN PERÚ establece las normas para la contabilización de los invent...
 
MAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESAS
MAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESASMAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESAS
MAPA MENTAL DE GESTION FINANCIERA PARA CORRECTO MANEJO DE EMPRESAS
 
EXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptx
EXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptxEXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptx
EXPLICACIONES DE ASIENTOS CONTABLES DE SUELDOS Y JORNALES .pptx
 
METODO MIXTOpresentaciondeadministracion.pptx
METODO MIXTOpresentaciondeadministracion.pptxMETODO MIXTOpresentaciondeadministracion.pptx
METODO MIXTOpresentaciondeadministracion.pptx
 
INVESTIGACIÓN EN INGENIERIA - El Problema de investigación
INVESTIGACIÓN EN INGENIERIA - El Problema de investigaciónINVESTIGACIÓN EN INGENIERIA - El Problema de investigación
INVESTIGACIÓN EN INGENIERIA - El Problema de investigación
 
GERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESAS
GERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESASGERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESAS
GERENCIA DE OPERACIONES MBA ADMINISTRACION DE EMPRESAS
 
Libros - Las 48 leyes del Poder vida.pdf
Libros - Las 48 leyes del Poder vida.pdfLibros - Las 48 leyes del Poder vida.pdf
Libros - Las 48 leyes del Poder vida.pdf
 
modalidades de importaciones de productos
modalidades de importaciones de productosmodalidades de importaciones de productos
modalidades de importaciones de productos
 
REINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEA
REINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEAREINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEA
REINGENIERA, GESTION DE ADMINISTRACION CONTEMPORANEA
 
1 GENERALIDADES Bioestadística y demografia.pdf
1 GENERALIDADES Bioestadística y demografia.pdf1 GENERALIDADES Bioestadística y demografia.pdf
1 GENERALIDADES Bioestadística y demografia.pdf
 
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptxCADENA DE SUMINISTROS DIAPOSITIVASS.pptx
CADENA DE SUMINISTROS DIAPOSITIVASS.pptx
 
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
Evaluación y Mejora Continua Guía de Seguimiento y Monitoreo para Cursos de C...
 
Unidad 1 Modelo de Internacionalizacion de la empresas.pdf
Unidad 1 Modelo de Internacionalizacion de la empresas.pdfUnidad 1 Modelo de Internacionalizacion de la empresas.pdf
Unidad 1 Modelo de Internacionalizacion de la empresas.pdf
 

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