Unidad_II_Introduccion_a_la_POO_

71

Transcript of Unidad_II_Introduccion_a_la_POO_

Page 1: Unidad_II_Introduccion_a_la_POO_
Page 2: Unidad_II_Introduccion_a_la_POO_

UNIDAD IIIUNIDAD III

Programación Orientada a Objetos

Page 3: Unidad_II_Introduccion_a_la_POO_

INDICEINDICE

• Objetivo general.Objetivo general.• Objetivos específicos.Objetivos específicos.• Bibliografía recomendada.Bibliografía recomendada.• Introducción.Introducción.• Clases.Clases.• Declaración de una clase.Declaración de una clase.• Objetos de clases.Objetos de clases.

Page 4: Unidad_II_Introduccion_a_la_POO_

INDICEINDICE

• Atributos.Atributos.• Definición de una función miembro.Definición de una función miembro.• Tipos de funciones miembros.Tipos de funciones miembros.• Constructor.Constructor.• Tipos de constructores.Tipos de constructores.• Constructor por defecto.Constructor por defecto.

• Constructor alternativoConstructor alternativo..

Page 5: Unidad_II_Introduccion_a_la_POO_

INDICEINDICE

• Constructor sobrecargado.Constructor sobrecargado.• Constructor de copia.Constructor de copia.• Destructor.Destructor.• Selectores.Selectores.• Modificadores o mutadores.Modificadores o mutadores.• Iteradores.Iteradores.• Principios de la POO.Principios de la POO.

Page 6: Unidad_II_Introduccion_a_la_POO_

INDICEINDICE

• Encapsulamiento.Encapsulamiento.• Visibilidad.Visibilidad.• Polimorfismo.Polimorfismo.• Herencia.Herencia.• Herencia simple.Herencia simple.• Herencia múltiple.Herencia múltiple.• Funciones virtuales.Funciones virtuales.

Page 7: Unidad_II_Introduccion_a_la_POO_

INDICEINDICE

• Ejercicios propuestos.Ejercicios propuestos.• Recomendaciones.Recomendaciones.• Errores frecuentes de programación.Errores frecuentes de programación.• Interrogantes.Interrogantes.

Page 8: Unidad_II_Introduccion_a_la_POO_

OBJETIVO GENERALOBJETIVO GENERAL

• Al finalizar esta unidad los alumnos estarán en la capacidad de manejar e implementar conceptos básicos relacionados con la programación orientada a objeto.

Page 9: Unidad_II_Introduccion_a_la_POO_

• Describir conceptos básicos de la programación orientada a objeto.

• Implementar aplicaciones en el lenguaje de Implementar aplicaciones en el lenguaje de programación C++ que hagan uso de la POO.programación C++ que hagan uso de la POO.

OBJETIVOS ESPECIFICOSOBJETIVOS ESPECIFICOS

Page 10: Unidad_II_Introduccion_a_la_POO_

BIBLIOGRAFÍA BIBLIOGRAFÍA RECOMENDADARECOMENDADA

• Aguilar Joyanes. Aguilar Joyanes. Programación en C++. Programación en C++. 2000. 2000. Editorial Mc Graw Hill. Pp 265-284.Editorial Mc Graw Hill. Pp 265-284.

• Zimerman Heilleman. Zimerman Heilleman. Estructuras de datosEstructuras de datos. . Editorial Mc Graw Hill. Pp 121-Editorial Mc Graw Hill. Pp 121-

• Deytel & Deytel. Deytel & Deytel. ¿Como Programar en C++?.¿Como Programar en C++?. Editorial McGraw Hill. Pp 394-417, 592-785,Editorial McGraw Hill. Pp 394-417, 592-785,

Page 11: Unidad_II_Introduccion_a_la_POO_

BIBLIOGRAFÍA BIBLIOGRAFÍA RECOMENDADARECOMENDADA

• Schildt Herbert. C++ Guia de autoenseñanza. Schildt Herbert. C++ Guia de autoenseñanza. 1999. Editorial Mc Graw Hill. Pp 1-189, 251-288.1999. Editorial Mc Graw Hill. Pp 1-189, 251-288.

• Student Guide Sun Microsystems. Introduction to Student Guide Sun Microsystems. Introduction to java Programming Language. Modules 1-10.java Programming Language. Modules 1-10.

• Student Guide Sun Microsystems. Java Student Guide Sun Microsystems. Java Programming Language Volumen 1. Modules 1-9.Programming Language Volumen 1. Modules 1-9.

Page 12: Unidad_II_Introduccion_a_la_POO_

BIBLIOGRAFÍA BIBLIOGRAFÍA RECOMENDADARECOMENDADA

• Student Guide Sun Microsystems. Introduction to Student Guide Sun Microsystems. Introduction to java Programming Language. Modules 1-10.java Programming Language. Modules 1-10.

• Student Guide Sun Microsystems. Java Student Guide Sun Microsystems. Java Programming Language Volumen 1. Modules 1-Programming Language Volumen 1. Modules 1-9.9.

Page 13: Unidad_II_Introduccion_a_la_POO_

BIBLIOGRAFÍA BIBLIOGRAFÍA RECOMENDADARECOMENDADA

• Student Guide Sun Microsystems. Java Student Guide Sun Microsystems. Java Programming Language Volumen 2. Modules 10-Programming Language Volumen 2. Modules 10-15.15.

Page 14: Unidad_II_Introduccion_a_la_POO_

INTRODUCCIÓNINTRODUCCIÓN

• Desde sus comienzos, la programación ha estado Desde sus comienzos, la programación ha estado gobernada, por varias metodologías. gobernada, por varias metodologías.

• La programación estructurada.La programación estructurada.• La programación orientada a objeto.La programación orientada a objeto.

Page 15: Unidad_II_Introduccion_a_la_POO_

CLASESCLASES

• Las clases son los bloques de construcción Las clases son los bloques de construcción fundamentales de los programas orientados a fundamentales de los programas orientados a objetos. objetos.

Page 16: Unidad_II_Introduccion_a_la_POO_

DECLARACIÓN DE UNA DECLARACIÓN DE UNA CLASECLASE

• Class nombre-clase{Class nombre-clase{

funciones y variables privadas de la clasefunciones y variables privadas de la clase

public:public:

funciones y variables públicas de la clasefunciones y variables públicas de la clase

} lista de objetos;} lista de objetos;

Page 17: Unidad_II_Introduccion_a_la_POO_

DECLARACIÓN DE UNA DECLARACIÓN DE UNA CLASECLASE

• Ejemplo:Ejemplo: class empleado{class empleado{ float sueldo,prestacion;float sueldo,prestacion; int aniotrab;int aniotrab; public:public: void colocar(float suel,int atrab);void colocar(float suel,int atrab); float get_prest();float get_prest(); };};

Page 18: Unidad_II_Introduccion_a_la_POO_

OBJETOS DE CLASESOBJETOS DE CLASES

• Para crear un objeto, debe utilizarse el nombre de Para crear un objeto, debe utilizarse el nombre de la clase como un especificador de tipo.la clase como un especificador de tipo.

<nombre de la clase> <identificador>;<nombre de la clase> <identificador>;• Ejemplo:Ejemplo:

empleado ob1,ob2;empleado ob1,ob2;

Page 19: Unidad_II_Introduccion_a_la_POO_

FUNCIÓN MIEMBROFUNCIÓN MIEMBRO

• Son funciones que se incluyen dentro de una Son funciones que se incluyen dentro de una clase (en algunos lenguajes orientados a objetos, clase (en algunos lenguajes orientados a objetos, se denominan métodos).se denominan métodos).

• La sintaxis es:La sintaxis es:

tipo nombre_clase::nombre-func(parámetros){tipo nombre_clase::nombre-func(parámetros){

...//Cuerpo de la función...//Cuerpo de la función

}}

Page 20: Unidad_II_Introduccion_a_la_POO_

FUNCIÓN MIEMBROFUNCIÓN MIEMBRO

• void empleado::colocar(float suel,int atrab){void empleado::colocar(float suel,int atrab){

sueldo=suel;sueldo=suel;

aniotrab=atrab;aniotrab=atrab;

}}

float empleado::get_prest(){float empleado::get_prest(){

return(sueldo);return(sueldo);

}}

Page 21: Unidad_II_Introduccion_a_la_POO_

TIPOS DE FUNCIONES TIPOS DE FUNCIONES MIEMBROSMIEMBROS

• Constructores y Destructores.Constructores y Destructores.• Selectores.Selectores.• Modificadores o mutadores.Modificadores o mutadores.• Operadores.Operadores.• Iteradores.Iteradores.

Page 22: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTORCONSTRUCTOR

• Es una función miembro de propósito especifico Es una función miembro de propósito especifico que se ejecuta automáticamente cuando se crea que se ejecuta automáticamente cuando se crea

un objeto de una claseun objeto de una clase..

Page 23: Unidad_II_Introduccion_a_la_POO_

TIPOS DE TIPOS DE CONSTRUCTORESCONSTRUCTORES

• Por defecto.Por defecto.• Alternativo.Alternativo.• Sobrecargado.Sobrecargado.• Copia.Copia.

Page 24: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR POR CONSTRUCTOR POR DEFECTODEFECTO

• Un constructor que no tiene parámetros se llama Un constructor que no tiene parámetros se llama constructor por defecto. Un constructor por constructor por defecto. Un constructor por defecto normalmente inicializa los miembros defecto normalmente inicializa los miembros datos asignándoles valores por defecto. datos asignándoles valores por defecto.

Page 25: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR POR CONSTRUCTOR POR DEFECTODEFECTO

• Ejemplo:Ejemplo: class punto{class punto{ private:private: int x,y;int x,y; public:public: punto();punto(); };}; punto::punto(){punto::punto(){ x=0; y=0;x=0; y=0; }} punto p1;punto p1;

Page 26: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR CONSTRUCTOR ALTERNATIVOALTERNATIVO

• Un constructor con parámetros se denomina Un constructor con parámetros se denomina constructor alternativo.constructor alternativo.

• Ejemplo:Ejemplo: class punto{class punto{ private:private: int x,y;int x,y; public:public: punto(int valx,int valy); punto(int valx,int valy);

Page 27: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR CONSTRUCTOR ALTERNATIVOALTERNATIVO

punto::punto(int valx,int valy){punto::punto(int valx,int valy){

x=valx; y=valy;x=valx; y=valy;

}}

punto p1(25,50);punto p1(25,50);

Page 28: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR CONSTRUCTOR SOBRECARGADOSOBRECARGADO

• Son bastante frecuentes; proporcionan medios Son bastante frecuentes; proporcionan medios alternativos para inicializar objetos nuevos de alternativos para inicializar objetos nuevos de una clase. una clase.

Page 29: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR CONSTRUCTOR SOBRECARGADOSOBRECARGADO

• Ejemplo:Ejemplo: class punto{class punto{ private:private: int x,y;int x,y; public:public: punto();punto(); punto(int valx, int valy);punto(int valx, int valy); };}; punto::punto(){punto::punto(){ x=0; y=0;x=0; y=0; }}

Page 30: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR CONSTRUCTOR SOBRECARGADOSOBRECARGADO

punto::punto(int valx, int valy){punto::punto(int valx, int valy){

x=valx; y=valy; x=valx; y=valy;

}}

punto p;punto p;

punto q(25,50);punto q(25,50);

Page 31: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR DE COPIACONSTRUCTOR DE COPIA

• Se llama automáticamente cuando un objeto se Se llama automáticamente cuando un objeto se pasa por valor: Se construye una copia local del pasa por valor: Se construye una copia local del objeto que se construye. El constructor de copia objeto que se construye. El constructor de copia se llama también cuando un objeto se declara e se llama también cuando un objeto se declara e inicializa con otro objeto del mismo tipo.inicializa con otro objeto del mismo tipo.

Page 32: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR DE COPIACONSTRUCTOR DE COPIA

• Ejemplo:Ejemplo: class punto{class punto{

private:private: int x,y;int x,y; public:public: punto();punto(); punto(punto obj);punto(punto obj); };}; punto::punto(){punto::punto(){ x=0; y=0;x=0; y=0; }}

Page 33: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTOR DE COPIACONSTRUCTOR DE COPIA

punto::punto(punto obj){punto::punto(punto obj){

obj.x=10; obj.y=20;obj.x=10; obj.y=20;

}}

punto P;punto P;

punto T(P);punto T(P);

punto Q=P;punto Q=P;

Page 34: Unidad_II_Introduccion_a_la_POO_

DESTRUCTORDESTRUCTOR

• Es una función miembro especial, que se llama Es una función miembro especial, que se llama automáticamente siempre que se destruye un automáticamente siempre que se destruye un objeto de la clase.objeto de la clase.

Page 35: Unidad_II_Introduccion_a_la_POO_

SELECTORESSELECTORES

• Son aquellas funciones miembros que devuelven Son aquellas funciones miembros que devuelven valores de los miembros datos.valores de los miembros datos.

Page 36: Unidad_II_Introduccion_a_la_POO_

MODIFICADORES O MODIFICADORES O MUTADORESMUTADORES

• Son funciones miembros que permiten a un Son funciones miembros que permiten a un programa cliente cambiar los contenidos de los programa cliente cambiar los contenidos de los miembros datos.miembros datos.

Page 37: Unidad_II_Introduccion_a_la_POO_

ITERADORESITERADORES

• Son funciones miembros que procesan Son funciones miembros que procesan colecciones de objetos, tales como array.colecciones de objetos, tales como array.

Page 38: Unidad_II_Introduccion_a_la_POO_

PRINCIPIOS DE LA POOPRINCIPIOS DE LA POO

• Encapsulamiento.Encapsulamiento.• Polimorfismo. Polimorfismo. • Herencia.Herencia.

Page 39: Unidad_II_Introduccion_a_la_POO_

ENCAPSULAMIENTOENCAPSULAMIENTO

• Un principio fundamental en la programación Un principio fundamental en la programación orientada a objetos es la ocultación de la orientada a objetos es la ocultación de la información que significa que a determinado información que significa que a determinado datos del interior de una clase no se puede datos del interior de una clase no se puede acceder por funciones externa a la clase. acceder por funciones externa a la clase.

Page 40: Unidad_II_Introduccion_a_la_POO_

ENCAPSULAMIENTOENCAPSULAMIENTO

• El lenguaje de programación C++ emplea o El lenguaje de programación C++ emplea o utiliza tres diferentes especificadores de acceso utiliza tres diferentes especificadores de acceso para controlar el acceso a los miembros de la para controlar el acceso a los miembros de la clase: public, private y protected.clase: public, private y protected.

Page 41: Unidad_II_Introduccion_a_la_POO_

ENCAPSULAMIENTOENCAPSULAMIENTO

• En general se suele emplear el siguiente formato En general se suele emplear el siguiente formato en las definiciones de clases:en las definiciones de clases:

• Class nombre-clase{Class nombre-clase{

public:public:

//miembros públicos//miembros públicos

protected:protected:

//miembros protegidos//miembros protegidos

private:private:

//miembros privados//miembros privados

};};

Page 42: Unidad_II_Introduccion_a_la_POO_

VISIBILIDADVISIBILIDAD

Tipo de Tipo de miembromiembro

Miembro de Miembro de la misma la misma

claseclase

AmigaAmiga Miembro de Miembro de una clase una clase derivadaderivada

Función no Función no miembromiembro

PrivatePrivate XX XX

ProtectedProtected XX XX XX

PublicPublic XX XX XX XX

Page 43: Unidad_II_Introduccion_a_la_POO_

POLIMORFISMOPOLIMORFISMO

• Es la cualidad que permite que un nombre se Es la cualidad que permite que un nombre se utilice para dos o más propósitos relacionados, utilice para dos o más propósitos relacionados, pero técnicamente diferentes. El propósito del pero técnicamente diferentes. El propósito del polimorfismo aplicado a la POO es permitir polimorfismo aplicado a la POO es permitir poder usar un nombre para especificar una clase poder usar un nombre para especificar una clase general de acciones. general de acciones.

Page 44: Unidad_II_Introduccion_a_la_POO_

POLIMORFISMOPOLIMORFISMO

• El polimorfismo se puede aplicar a:El polimorfismo se puede aplicar a:• Funciones (sobrecarga). Funciones (sobrecarga). • Operadores (sobrecarga).Operadores (sobrecarga).

Page 45: Unidad_II_Introduccion_a_la_POO_

HERENCIAHERENCIA

• Es el proceso mediante el cuál un objeto puede Es el proceso mediante el cuál un objeto puede adquirir las propiedades de otro. adquirir las propiedades de otro.

Page 46: Unidad_II_Introduccion_a_la_POO_

HERENCIAHERENCIA

• En C++ la herencia se clasifica en: En C++ la herencia se clasifica en: • Herencia Simple.Herencia Simple.• Herencia Múltiple.Herencia Múltiple.

Page 47: Unidad_II_Introduccion_a_la_POO_

HERENCIA SIMPLEHERENCIA SIMPLE

• Cuando una clase hereda a otra, se usa la forma Cuando una clase hereda a otra, se usa la forma general:general:

class nom_clase_derivada: especif_acceso class nom_clase_derivada: especif_acceso nom_clase_base{nom_clase_base{

//....//....

}}

Page 48: Unidad_II_Introduccion_a_la_POO_

HERENCIA SIMPLEHERENCIA SIMPLE

• Donde el especificador de acceso puede ser: Donde el especificador de acceso puede ser: public, private o protectedpublic, private o protected

Page 49: Unidad_II_Introduccion_a_la_POO_

HERENCIA SIMPLEHERENCIA SIMPLE

• Cuando el especificador de acceso para la clase Cuando el especificador de acceso para la clase base heredada es public, todos los atributos base heredada es public, todos los atributos públicos de la clase base se convierten en públicos de la clase base se convierten en atributos públicos de la clase derivada. atributos públicos de la clase derivada.

Page 50: Unidad_II_Introduccion_a_la_POO_

HERENCIA SIMPLEHERENCIA SIMPLE

• Si el especificador de acceso es private, todos los Si el especificador de acceso es private, todos los atributos públicos de la clase base pasan a ser atributos públicos de la clase base pasan a ser atributos privados de la clase derivada. atributos privados de la clase derivada.

Page 51: Unidad_II_Introduccion_a_la_POO_

USO DE ATRIBUTOS USO DE ATRIBUTOS PROTEGIDOSPROTEGIDOS

• El especificador de acceso protected es El especificador de acceso protected es equivalente al especificador private, con la única equivalente al especificador private, con la única excepción de que los atributos protegidos de una excepción de que los atributos protegidos de una clase base son accesibles para los miembros de clase base son accesibles para los miembros de cualquier clase derivada de esa base. cualquier clase derivada de esa base.

Page 52: Unidad_II_Introduccion_a_la_POO_

USO DE ATRIBUTOS USO DE ATRIBUTOS PROTEGIDOSPROTEGIDOS

• Cuando una clase derivada hereda de una clase Cuando una clase derivada hereda de una clase base como público un atributo protegido, éste se base como público un atributo protegido, éste se convierte para la clase derivada en un atributo convierte para la clase derivada en un atributo protegido. protegido.

Page 53: Unidad_II_Introduccion_a_la_POO_

USO DE ATRIBUTOS USO DE ATRIBUTOS PROTEGIDOSPROTEGIDOS

• Si se hereda de la clase base como private, Si se hereda de la clase base como private, entonces el atributo protegido de la clase base se entonces el atributo protegido de la clase base se convierte en atributo protegido de la clase convierte en atributo protegido de la clase derivada.derivada.

Page 54: Unidad_II_Introduccion_a_la_POO_

USO DE ATRIBUTOS USO DE ATRIBUTOS PROTEGIDOSPROTEGIDOS

• Una clase base también puede ser heredada como Una clase base también puede ser heredada como protected por una clase derivada. Cuando se da protected por una clase derivada. Cuando se da este caso, los atributos protegidos y públicos de este caso, los atributos protegidos y públicos de la clase base pasan a ser atributos protegidos en la clase base pasan a ser atributos protegidos en la clase derivada.la clase derivada.

Page 55: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTORES, CONSTRUCTORES, DESTRUCTORES Y HERENCIADESTRUCTORES Y HERENCIA

• Cuando una clase base y una clase derivada Cuando una clase base y una clase derivada tienen funciones constructoras y destructoras, las tienen funciones constructoras y destructoras, las funciones constructoras se ejecutan en orden funciones constructoras se ejecutan en orden descendente. Las funciones destructoras se descendente. Las funciones destructoras se ejecutan en orden inverso. ejecutan en orden inverso.

Page 56: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTORES, CONSTRUCTORES, DESTRUCTORES Y HERENCIADESTRUCTORES Y HERENCIA

• Si se requiere pasar un argumento al constructor Si se requiere pasar un argumento al constructor de la clase base, se debe establecer un canal de de la clase base, se debe establecer un canal de paso de argumentos. paso de argumentos.

• En primer lugar, se pasan todos los argumentos En primer lugar, se pasan todos los argumentos necesarios para la clase base y derivada al necesarios para la clase base y derivada al constructor de la clase derivada. constructor de la clase derivada.

Page 57: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTORES, CONSTRUCTORES, DESTRUCTORES Y HERENCIADESTRUCTORES Y HERENCIA

• La sintaxis de paso de un argumento de la clase La sintaxis de paso de un argumento de la clase derivada a la clase base es:derivada a la clase base es:

Constructor_derivada(lista_arg): clase base(lista Constructor_derivada(lista_arg): clase base(lista _arg){_arg){

//Cuerpo del constructor de la clase derivada//Cuerpo del constructor de la clase derivada

} }

Page 58: Unidad_II_Introduccion_a_la_POO_

CONSTRUCTORES, CONSTRUCTORES, DESTRUCTORES Y HERENCIADESTRUCTORES Y HERENCIA

• Se admite que tanto la clase base como la clase Se admite que tanto la clase base como la clase derivada utilicen el mismo argumento. También derivada utilicen el mismo argumento. También es posible que la clase derivada ignore todos los es posible que la clase derivada ignore todos los argumentos y sólo los pase a la clase derivada. argumentos y sólo los pase a la clase derivada.

Page 59: Unidad_II_Introduccion_a_la_POO_

HERENCIA MÚLTIPLEHERENCIA MÚLTIPLE

• Existen dos modos en los que una clase derivada Existen dos modos en los que una clase derivada puede heredar más de una clase base:puede heredar más de una clase base:• Indirecta.Indirecta.• DirectaDirecta

Page 60: Unidad_II_Introduccion_a_la_POO_

HERENCIA MÚLTIPLE HERENCIA MÚLTIPLE INDIRECTAINDIRECTA

• Las funciones constructoras se llaman en orden Las funciones constructoras se llaman en orden de derivación:de derivación:

B1B1

D1D1 D2D2

Page 61: Unidad_II_Introduccion_a_la_POO_

HERENCIA MÚLTIPLE HERENCIA MÚLTIPLE INDIRECTAINDIRECTA

• Las funciones destructoras se llaman en orden Las funciones destructoras se llaman en orden inverso:inverso:

B1B1

D1D1

D2 D2

Page 62: Unidad_II_Introduccion_a_la_POO_

HERENCIA MÚLTIPLE HERENCIA MÚLTIPLE DIRECTADIRECTA

B1 B2B1 B2

D1D1

Page 63: Unidad_II_Introduccion_a_la_POO_

CLASES BASE VIRTUALESCLASES BASE VIRTUALES

• Cuando una clase derivada hereda múltiples Cuando una clase derivada hereda múltiples clases puede surgir algún problema. Para clases puede surgir algún problema. Para entender el problema, consideremos la siguiente entender el problema, consideremos la siguiente jerarquía de clase.jerarquía de clase.

Page 64: Unidad_II_Introduccion_a_la_POO_

CLASES BASE VIRTUALESCLASES BASE VIRTUALES

Base BaseBase Base

Derivada1 Derivada 2Derivada1 Derivada 2

Derivada3Derivada3

Page 65: Unidad_II_Introduccion_a_la_POO_

FUNCIONES AMIGASFUNCIONES AMIGAS

Page 66: Unidad_II_Introduccion_a_la_POO_

FUNCIONES AMIGASFUNCIONES AMIGAS

Page 67: Unidad_II_Introduccion_a_la_POO_

FUNCIONES AMIGASFUNCIONES AMIGAS

Page 68: Unidad_II_Introduccion_a_la_POO_

RECOMENDACIONESRECOMENDACIONES

Page 69: Unidad_II_Introduccion_a_la_POO_

RECOMENDACIONESRECOMENDACIONES

Page 70: Unidad_II_Introduccion_a_la_POO_

ERRORES FRECUENTES DE ERRORES FRECUENTES DE PROGRAMACIÓNPROGRAMACIÓN

Page 71: Unidad_II_Introduccion_a_la_POO_

ERRORES FRECUENTES DE ERRORES FRECUENTES DE PROGRAMACIÓNPROGRAMACIÓN