Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.

Slides:



Advertisements
Presentaciones similares
Definición de Clases y Variables de referencia.
Advertisements

Herencia en C#.
Fundamentos de la programación orientada a objetos
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
Informática II Clase 12: Flujos Diego Fernando Serna Restrepo
Herencia simple y multiple
Arquitectura CLARO-TECNOTREE
Orientación a Objetos con Java SE
Clase 3: Punteros y Referencias
La Programación Orientado a Objetos
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
UNIVERSIDAD LATINA (UNILA)
Aplicación del paradigma orientado a objetos
Diseño y programación de
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
HERENCIA.
4.- Orientación a Objetos Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.
Introducción a la Programación Orientada a Objetos Redefinición y Sobrecarga Dada la siguiente jerarquía de clases: Alfa Delta Beta.
Programación Orientada a Objetos usando C++
CLASES DERIVADAS:  HERENCIA.  La herencia o relacion es-un es la relacion que existe entre dos clases, en la que una clase denominada se crea a partir.
Medio de tele-comunicación
Modificadores.
PROGRAMACION ORIENTADA A OBJETOS
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Introducción a clases Programación Orientada a Objetos.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
I NSTITUTO TECNOLOGICO SUPERIOR DE LIBRES INGENIERIA EN SISTEMAS COMPUTACIONALES PROGRAMACION ORIENTADA A OBJETOS ESMERALDA LIMON ESCUTIA REDEFINICION.
Programación III Clase 06 Funciones.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++
Herramientas de polimorfismo y herencia en C++
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
1 Miembros Estáticos (Static) de Clases y Funciones Amigas (Friend) Agustín J. González ELO329.
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
1 Miembros Estáticos (Static) de Clases y Funciones Amigas (Friend) Agustín J. González Versión Original de Kip Irvine ELO326: Seminario II 2do. Sem
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Sesión 11: Herencia (1) – herencia simple /1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Arreglos de Objetos.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Detalles Generales sobre Java
Sesión 12: Herencia (2) – herencia múltiple /1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
HERENCIA.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Clases “ Es una Abstracción de un elemento del mundo real ”
Herencia en C++ Agustín J. González ELO329. Diseño y Programación Orientados a Objetos 2 Motor ElectricMotor Motor y ElectricMotor Consideremos dos clases.
Herencias Conceptos básicos i
Modelado UML Diagrama de Clases
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Transcripción de la presentación:

Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2

C HISTE DEL D ÍA Informática II 2011/2 2

C ONTENIDO Informática II 2011/2 3 Repaso 1 Arreglos 2 Clase String 3 4 Listas Enlazadas

H ERENCIA Diferentes tipos de objetos usualmente comparten características similares entre sí. La herencia permite generar nuevos tipos, tomando como base alguno ya implementado. También hace posible la implementación de jerarquías desde la generalización hasta la especialización de los objetos. Informática II 2011/2 4

H ERENCIA La programación orientada a objetos permite a las clases heredar las características y los comportamientos de otras clases (variables miembro y los métodos). Adicionalmente C++, permite definir una clase modificando una o más clases ya existentes. Estas modificaciones consisten habitualmente en añadir nuevos miembros (variables o métodos) a la clase que se está definiendo, aunque también se puede redefinir variables o funciones miembro ya existentes. Informática II 2011/2 5

H ERENCIA La clase de la que se parte en este proceso recibe el nombre de clase base, y la nueva clase que se obtiene se denomina clase derivada. Ésta a su vez puede ser clase base en un nuevo proceso de derivación, iniciando de esta manera una jerarquía de clases. Informática II 2011/2 6

E JEMPLO H ERENCIA class vehiculo{ protected: int vel; bool on; public: vehiculo(); vehiculo(int _vel,bool _on); int getVel() const; void setVel(int _vel); ~vehiculo(); }; Informática II 2011/2 7 class bicicleta: private vehiculo{ private: int Ncambio; int pedalear; int Ndiscos; public: bicicleta(); void cambCambio(int _Ncambio); ~bicicleta(); }; //clase vehiculo vehiculo::vehiculo():vel(0),on(false){ cout<<"constructor clase base"<<endl; } vehiculo::vehiculo(int _vel,bool _on):vel(_vel),on(_on){ cout<<"constructor con argumentos clase base"<<endl; } int vehiculo::getVel() const { return vel; } void vehiculo::setVel(int _vel){ vel=_vel; } vehiculo::~vehiculo(){} //clase carro carro::carro():Ncambio(0),acelerar(0){ cout<<"constructor por defecto clase derivada"<<endl; } void carro::cambCambio(int _cambCambio){ Ncambio= _cambCambio; } carro::~carro(){} class carro: public vehiculo{ private: int Ncambio; int acelerar; public: carro(); void cambCambio(int _Ncambio); ~carro(); }; using namespace std; carro audi; int main() { //damos un valor a una variable miembro heredada audi.setVel(10); //accedemos a un metodo heredado cout<<audi.getVel()<<endl; return 0; } audi vel: 10

N OTAS : 1 Primero se debe crear la clase base, antes de tratar de crear clases que deriven de esta. 2 El número de variables miembro de una clase derivada es mayor o igual que el de la clase base. 3 Hay algunos elementos de la clase base que no pueden ser heredados: Constructores y destructores Funciones friend Funciones y datos estáticos de la clase Operador de asignación (=) sobrecargado Informática II 2011/2 8

C ONSTRUCTORES Y D ESTRUCTORES Cuando un objeto derivado es creado primero es llamado el constructor de la clase base y luego el propio. Informática II 2011/2 9 int vel; bool on; int vel; bool on; int Ncambio; int acelerar; int Ncambio; int acelerar; Parte vehículo Objeto carro Cuando un objeto es derivado y este se destruye, se llamará primero el destructor de este y posteriormente se llama automáticamente el destructor de la clase base. No es posible crear una clase derivada sin crear primero su porción de la clase base.

P ASAR ARGUMENTOS AL CONSTRUCTOR BASE Se pueden inicializar las variables miembro heredadas, llamando al constructor de la clase base desde la etapa de inicialización del constructor de la clase derivada así: Informática II 2011/2 10 carro(int _vel,bool _on); carro::carro(int _vel,bool _on): Ncambio(0), acelerar(0){ } vehiculo(_vel,_on),

E JEMPLO R EDEFINICIÓN DE M ÉTODOS Informática II 2011/2 11 class vehiculo{ protected: int vel; bool on; public: vehiculo(); vehiculo(int _vel,bool _on); int getVel() const; void setVel(int _vel); ~vehiculo(); }; class carro: public vehiculo{ private: int Ncambio; int acelerar; public: carro(); carro(int _vel,bool _on); int getVel() const; void cambCambio(int _Ncambio); ~carro(); }; int vehiculo::getVel() const { cout<<"funcion getVel clase base"<<endl; return vel; } int carro::getVel() const{ cout<<"funcion getVel clase derivada"<<endl; return vel; } int main() { carro audi(); //damos un valor a una variable miembro heredada audi.setVel(10); //accedemos a un método heredado redefinido cout<<audi.getVel()<<endl; //acedemos al metodo de la clase base cout<<audi.vehiculo::getVel()<<endl; return 0; }

S OBRECARGAR V S R EDEFINIR Cuando se sobrecarga funciones, el nombre de la función permanece, pero los argumentos de entrada y de retorno pueden variar, al igual que la implementación. Cuando se redefine una función lo único que cambia es su implementación. El encabezado permanece igual (argumento de retorno y firma) en la clase base como en la derivada. Informática II 2011/2 12

O CULTANDO LOS M ÉTODOS DE LA C LASE B ASE Si la clase base contiene varios métodos sobrecargados, es decir métodos con nombres iguales pero con argumentos e implementaciones diferentes, y redefinimos uno de esos métodos dentro de una clase derivada, todos los métodos dentro de la clase base que respondan al mismo nombre quedaran ocultos, es decir no se podrán acceder a través del objeto derivado. Informática II 2011/2 13

C ONVERSIONES ENTRE CLASE B ASE Y D ERIVADA Informática II 2011/2 14 Objeto_claseBase= Objeto_claseDerivada; Objeto_claseDerivada= Objeto_claseBase; Se puede hacer referencia a un objeto de la clase derivada con su dirección contenida en un puntero a la clase base. vehiculo *ptrV=new carro(30,true); carro *ptrC=new vehiculo();

C ONVERSIONES ENTRE CLASE B ASE Y D ERIVADA En conclusión un puntero a la clase base puede almacenar la dirección de un objeto perteneciente a una clase derivada. Sin embargo, se aplicarán los métodos de la clase a la que pertenezca el puntero (base), no los de la clase a la que pertenece el objeto (derivada). El tipo del puntero utilizado para acceder a un método que se encuentra implementado en ambas clases (base y derivada), determinará cuál de los dos métodos llamar. Informática II 2011/2 15 using namespace std; int main() { vehiculo *ptrV=new carro(30,true); cout getVel()<<endl; //se accede al metodo de la clase base return 0; }

E JEMPLO M ÉTODOS V IRTUALES Informática II 2011/2 16 class vehiculo{ protected: int vel; bool on; public: vehiculo(); vehiculo(int _vel,bool _on); virtual int getVel() const; void setVel(int _vel); ~vehiculo(); }; class carro: public vehiculo{ private: int Ncambio; int acelerar; public: carro(); carro(int _vel,bool _on); int getVel() const; void cambCambio(int _Ncambio); ~carro(); }; int vehiculo::getVel() const { cout<<"funcion getVel clase base"<<endl; return vel; } int carro::getVel() const{ cout<<"funcion getVel clase derivada"<<endl; return vel; } using namespace std; int main() { vehiculo *ptrV=new carro(30,true); cout getVel()<<endl; //se accede al método de la clase derivada return 0; }

C ONTENIDO Informática II 2011/2 17 Repaso 1 Arreglos 2 Clase String 3 4 Listas Enlazadas

D EFINICIÓN Definición: Un array es una colección de variables del mismo tipo de datos con un mismo nombre. Los arrays son un ejemplo de una variable estructurada en la cual: –Hay un numero de piezas de datos contenidos en el mismo nombre. –Hay un método ordenado para la extracción de datos individuales del array

E JEMPLO A RREGLOS Solución 1: Crear una variable especifica por empleado en la cual se almacene la identificación de cada uno de los empleados. Problema: Supongamos el señor Burns le solicita a usted un programa que le permita llevar un registro de la identificación de cada uno de los empleados de la plata nuclear de Springfield, ¿Cómo lo haría?

E JEMPLO A RREGLOS Problema solución anterior: El problema se vuelve mas difícil a medida que el numero de empleados aumenta, pues implicara la creación de mas variables individuales (id5, id6, …)

Solución al problema anterior: En los arrays se encuentra la respuesta. Pues un array es como una caja para guardar elementos o como un archivador. Utiliza un sistema de indexación para encontrar el valor de cada una de las variables almacenadas en su interior. E JEMPLO A RREGLOS

R EPASO A RREGLOS Un array contiene N elementos. Los elementos de un array se enumeran consecutivamente 0, 1, 2, 3,.. (N-1) Estos números se denominan valores índice o subindice del array. Y sirven para accesar cualquier elemento del array. Número de elementos = 10 Subíndice

El arreglo edad tiene 10 elementos (edades), los indice van desde 0 hasta 9. Cada elemento se accede con el nombre del arreglo y con el indice al que corresponda. El elemento 0 del vector Edad vale 24 El elemento 5 del vector Edad vale 17 Número de elementos = 10 Subíndices Valores Nombre R EPASO A RREGLOS

I NICIALIZACIÓN DE A RREGLOS INICIALIZACIÓN En el momento de declarar el arreglo, se puede inicializar Se crea el arreglo y se inicializa int edad[10]={16,22,19,21,21,18,19,15,32,28}; Se crea el arreglo y se inicializa float temp[4]={21.3, 23.5, 27.5, 26.4};

A RREGLOS DE O BJETOS Los arreglos pueden guardar secuencias de datos de cualquier tipo, incluyendo los objetos. Si se desea usar un método de un objeto en un arreglo se usa el operador punto (.), tal como se hace con los objetos. Carro carrosBacanos[2]; // ¡Debe existir un constructor // por defecto que inicialice cada uno de los objetos! carrosBacanos[0].acelerar(); Informática II 2009/2 25

A RREGLOS M ULTIDIMENSIONALES Es posible crear arrays de tantas dimensiones como requieran sus aplicaciones. Se declaran siguiendo el patrón de la declaración de un vector: tipo nombre [d1] [d2] [d3]… [dN];

A RREGLOS DE 2 D IMENSIONES Declaración Ejemplo: tipo nombre [fila] [columna]; int A[2] [3]; A[0][0] Nombre Columnas = 3 Filas = 2 A[0][1] A[0][2] A[1][0] A[1][1] A[1][2]

A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] A RREGLOS DE 2 D IMENSIONES

I NICIALIZACIÓN A RREGLOS M ULTIDIMENSIONALES A[0][0] A[0][1] A[0][2] A[1][0] A[1][1] A[1][2] int matrizA [2] [3] = { {3,5,7}, {8,6,4} }; Fila 0 Fila int matrizA [2] [3] = {{3,5,7}, {8,6,4} }; int matrizA [2] [3] = { 3,5,7,8,6,4 };

B[0][0][2] B[0][1][2] B[0][2][2] B[1][2][2] B[1][0][1 ] B[1][1][1 ] B[0][0][1] B[0][1][1] B[1][0][1 ] B[1][1][1] B[1][2][1] B[0][2][1] A RREGLOS DE 3 D IMENSIONES Declaración tipo nombre [fila] [columna] [Planos]; Int matrizB[2] [3] [3]; B[0][0][0] Nombre Columnas = 3 Filas = 2 B[0][1][0] B[0][2][0] B[1][0][0] B[1][1][0] B[1][2][0] Planos = 3

int matrizA [2] [3] [3]={ {{1,3,5}, {7,9,11}}, {{2,4,6}, {8,10,12}}, {{3,7,11}, {15,19,23}} }; Fila 0 Fila Bloque 0 Bloque 1 Bloque F0 F1 C0 C1 C2 C0 C1 C2 C0 C1 C2 Bloque 0 Bloque 1 Bloque 2 A RREGLOS DE 3 D IMENSIONES

U SO DEL H EAP PROBLEMAS DE MEMORIA Cuando se declara un arreglo, se separa un espacio en memoria fijo para almacenarlo. El arreglo se localiza en el stack (limitado). Heap. Tiene más memoria. Es posible crear estructuras que se comportan de manera dinamica

Arreglos en el heap –Arreglo de apuntadores. Diferencia entre apuntador a un arreglo y arreglo de apuntadores 1: CAT FamilyOne[500]; 2: CAT * FamilyTwo[500]; 3: CAT * FamilyThree = new CAT[500]; (3) es una variante de (1), muy distinta de (2). U SO DEL H EAP PROBLEMAS DE MEMORIA

E JEMPLO Oveja rebanoUno[100]; //Arreglo de 100 ovejas en la pila Oveja * rebanoDos[100]; //Arreglo de 100 punteros a ovejas Oveja * rebanoTres = new Oveja[100]; //Puntero a arreglo de 100 ovejas en el //heap, rebanoTres apunta al primer //objeto tipo oveja ubicado en el heap Informática II 2011/2 34

Uso de apuntadores con nombres de arreglos –Los arreglos son apuntadores constantes. CAT Family[50]; –Es un apuntador constante a &Family[0]; –Es legal usar nombres de arreglos como apuntadores constantes y viceverza. Family[4]; Family + 4; U SO DEL H EAP PROBLEMAS DE MEMORIA Arreglos en el Free Store delete [] Family;

D ECLARANDO ARREGLOS EN EL HEAP CAT *Family = new CAT[500]; Por ejemplo, usted puede escribir: CAT *Family = new CAT[500]; CAT *pCat = Family; // pCat apunta a Family[0] pCat->SetAge(10); // Establecer Family[0] a 10 pCat++; // avanzar a Family[1] pCat->SetAge(20);// Establecer Family[1] a 20 Informática II 2009/2 36

L IBERANDO MEMORIA DEL HEAP Para liberar toda la memoria reservada por un arreglo en el heap, será necesario usar el comando delete [ ] sobre el puntero que apunta a la primera dirección del arreglo. delete [ ] punteroRebano; /* Notese que se utiliza los operadores [ ], en caso de no utilizarlos, solo se liberará el primer elemento del arreglo, generando así fugas de memoria*/ Informática II 2009/2 37

O TORGANDO TAMAÑO DE LOS ARREGLOS EN TIEMPO DE EJECUCIÓN Cuando se utilizan arreglos que se encuentren ubicados en el heap, será posible asignar su tamaño en tiempo de ejecución, otorgándole gran posibilidad de intercambio a los programas. Gato pGato = new Gato [vble]; /* ¡Importante!, recuerde liberar la memoria cuando ya no se vaya a usar */ Informática II 2009/2 38

C ONTENIDO Informática II 2011/2 39 Repaso 1 Arreglos 2 Clase String 3 4 Listas Enlazadas

A RREGLOS CHAR Y STRINGS En C es común utilizar arreglos char cuyo último carácter es nulo (\0), este tipo de arreglo se denominan strings tipo C. Aunque su funcionamiento es válido, hay que tener cuidado con algunas características de éstos arreglos. Informática II 2009/2 40

A LGUNAS FUNCIONES PARA MANEJAR STRINGS C++ hereda múltiples funciones para manejar strings desde el lenguaje C, alguna de éstas son: strcpy( ) strcmp( ) strlen( ) strcat( ) Utilice a man para conocer su funcionamiento Informática II 2009/2 41

C LASE STRING Aunque muchas de las funciones heredadas de C pueden trabajar con los strings, éstas no implementan una solución orientada a objetos. En las bibliotecas estándares de C++, es posible encontrar una clase para manipular este tipo de datos. Se denomina la clase String. Investigue al respecto. Informática II 2009/2 42

C LASE STRING Informática II 2011/2 43 La clase string está definida en la cabecera string (#include ) La cual no contiene la definición de la clase string que contiene solo las funciones para trabajar con strings terminados en NULL - por ejemplo para trabajar con char cadena[45]) Si se incluye el módulo no hace falta incluir, porque la segunda está incluida en la primera. Incluir las dos no provoca error y mejora la legibilidad.

E JEMPLO CLASE STRING Informática II 2011/2 44 #include using namespace std; carro audi; int main() { string s1; s1 = " string s2 = "microe.udea.edu.co"; string s3(/~diegoserna "); string s4(1, char(32)); string s5(2, '\n'); string s6 (s3, 2, 10); string s7 (informatica 2"); string msg = s1+s2+s3+s5+s6+s4+s7; return 0; } diegoserna informatica 2

C LASE STRING Operadores Funciones miembro Funciones externas Informática II 2011/ /reference/string/string/

C ONTENIDO Informática II 2011/2 46 Repaso 1 Arreglos 2 Clase String 3 4 Listas Enlazadas

L ISTAS ENLAZADAS Aunque los arreglos son excelentes contenedores y pueden albergar cualquier tipo de datos, tienen el inconveniente de ser de tamaño fijo. Este problema puede arreglarse reasignando su tamaño dinámicamente en tiempo de ejecución; sin embargo, cuando haya que mover, liberar o reasignar memoria muchas veces, puede requerir muchos recursos del pc. Informática II 2009/2 47

L ISTAS ENLAZADAS Las listas enlazadas son estructuras de datos que contienen pequeños contenedores diseñados para enlazarse unos a otros. La idea de esta estructura, es que cada uno de los objetos conoce la ubicación del siguiente objeto en la cadena. Informática II 2009/2 48

L ISTAS ENLAZADAS Cada contenedor de la lista se denomina nodo. Al primer nodo de la lista se le denomina la cabeza de la lista, al último la cola. Existen tres tipos fundamentales de listas: – Enlazados de manera sencilla – Doblemente enlazadas – Arboles Informática II 2009/2 49

L ISTAS ENLAZADAS DE MANERA SENCILLA Cada nodo apunta al siguiente en la lista, nunca en el sentido contrario. Si se desea conocer el valor de un nodo particular, es necesario recorrer toda la lista nodo por nodo desde su inicio. Informática II 2009/2 50

L ISTAS DOBLEMENTE ENLAZADAS Son aquellas que permiten moverse tanto hacia el siguiente nodo como al anterior, pues en cada uno de ellos guarda dicha información. Informática II 2009/2 51

L ISTAS EN ÁRBOL Permiten que cada nodo apunte a dos o más nodos. Informática II 2009/2 52

R ESUMEN 1 Una arreglo es una colección de tamaño fijo de objetos que son todos del mismo tipo. 2 Las matrices no hacen una comprobación de límites. Un error común es escribir para compensar n de una matriz de n miembros. 3 Los arreglos pueden ser unidimensional o multidimensional. En cualquier caso, todos los miembros del arreglo se pueden inicializar, en cualquier tipo predefinido, tales como int, o los objetos de una clase que tiene un constructor predeterminado. Informática II 2009/2 53

R ESUMEN 1 Arreglos y su contenido puede estar en el heap o en la pila. Si elimina un arreglo en el heap, recuerde utilizar los corchetes en la llamada a eliminar. 2 Los nombres de los arreglos son punteros constantes que apuntan a los primeros elementos del arreglo. Apuntadores y arreglos usan punteros aritméticos para encontrar el siguiente elemento de una matriz. 3 Usted puede crear listas enlazadas para gestionar colecciones cuyo tamaño no se conoce en tiempo de compilación. De las listas enlazadas, puede crear cualquier número de más estructuras complejas de datos. 4 Las Strings son arreglos de caracteres( char). C + + proporciona características especiales para la gestión de arreglos tipo char, incluyendo la habilidad para inicializar con cadenas entre comillas. Informática II 2009/2 54

Informática II 2011/2 55

Informática II 2011/2 56

B IBLIOGRAFÍA Aprenda C++ Avanzado como si estuviera en primero. Tecnun. C con clase o o Sams Teach yourselft C++ in 21 days Informática II 2011/2 57