APUNTES PROII 2º PARCIAL.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "APUNTES PROII 2º PARCIAL."

Transcripción

1 APUNTES PROII 2º PARCIAL. MEMORIA DINÁMICA. Hay que distinguir entre: Estática: memoria que se reserva en tiempo de compilación. Dinámica: memoria que se reserva en tiempo de ejecución. 5 pasos: 1. Declaración de un puntero en la zona de atributos. 2. Reservar con el operador new la memoria en el constructor. 3. Validar que tenemos espacio en la memoria en el constructor. 4. Utilizar esa zona de memoria en donde queramos. 5. Eliminar la reserva con el operador delete en el destructor. Ejemplo: int main() { int num; int * puntero; //Paso 1. cout << "Introduzca el num de elementos:" cin num; puntero = new (nothrow) int [num]; //Paso 2. //nothrow devuelve un null si no se ha podido reservar esa memoria if(puntero == null){ //Paso 3. cerr << "Error de memoria dinámica"; exit (-1); for ( int i = 0; i < num; i++ ) { //Paso 4 cout << "Introduzca el valor" << i << endl; cin puntero[i]; // equivalente a *(puntero+i) delete [] puntero; //Paso 5. return 1;

2 SOBRECARGA DE OPERADORES. 1. FORMAS DE SOBRECARGAR. - Usando funciones amigas. - Usando funciones miembro. Funciones friend: es la función externa a la clase que tiene acceso a la parte privada de esta. 2. TIPOS DE OPERADORES. Operadores unarios. Ej.: a++; Sobrecargar como función friend: friend valor_retorno operator++(tipo_operando a); //prototipo de la función Sobrecargar como función miembro: valor_retorno operator++(); Operadores binarios. Ej.: a + b; Sobrecargar como función friend: friend valor_retorno+(tipo1_operador a, tipo2_operador b); //prototipo de la función Sobrecargar como función miembro: valor_retorno operator+(tipo_operator b); Ejemplo: Como función miembro: Complejo a(5.3, 2); Complejo b; a = a + b; Dentro de la clase Complejo:

3 Prototipo: Complejo operator+(complejo b); Su implementación: Complejo Complejo::operator+(Complejo b){ Complejo toret; toret.real = real + b.real; toret.imaginaria = imaginaria + b.imaginaria; return toret; Como función amiga: friend Complejo operator+(complejo a, Complejo b); //Prototipo dentro de la clase Complejo operator+(complejo a, Complejo b) { //Implementación de la función friend Complejo toret; toret.real = a.real + b.real; toret.imaginaria = a.imaginaria + b.imaginaria; return toret; Sobrecarga de operadores <<, >>. Siempre se implementan como función friend: Sobrecarga de << (operador de inserción): Como valor de retorno siempre ostream por referencia. El primer argumento es un flujo de salida y el segundo lo que queremos sacar por pantalla. Prototipo para la clase catalogo: friend ostream & operator<<(ostream & o, Catalogo c); Sobrecarga de >>(operadir de extracción): Como valor de retorno istream por referencia

4 Prototipo para la clase catálogo: friend istream & operator>>(istream & i, Catalogo & c); En el código de la sobrecarga, primero se implementa el destructor y luego el código del constructor de copia.

5 GESTIÓN DE EXCEPCIONES. Hay dos tipos de excepciones: las que genera el sistema y las que generamos nosotros. Sintaxis: try { //aquí irán todas las sentencias en las que se puede generar una excepción+ if(...) { throw nombre excepción //lanza una excepción catch(tipo 1 arg 1){ //puede o no tener argumentos. Es el manejador de excepciones. catch(tipo 2 arg 2){ // un try puede tener asociados varios catch catch(...){ //catch universal, maneja cualquier tipo de excepción Ejemplo: try { if ( temperatura < 0 ) throw "Mucho frío"; else if ( temperatura > 0 && temperatura < 30 ) throw temperatura; else throw "Mucho calor"; catch ( string c ) { cout << c; catch ( int c ) { cout << c; catch (... ) {... Se suele poner un único manejador en el main que controle todas las excepciones del programa. #include <exception> //La clase exception tiene una funcion definida what(); que visualiza la pila, hace un volcado de pila.

6 bad_alloc int * puntero; try{ puntero = new int [10]; catch(const bad_alloc & e){ cerr << e.what() << endl; Clase excepción: class Excepcion1{ Excepcion1(const string &d){ descripcion = d; //suele tener 2 constructores //aquí se le pasaría const char * descripcion void visualizar(){ cerr << descripcion; ; : string descripcion; o char * descripcion

7 HERENCIA Y COMPOSICIÓN. Tipos de relaciones existentes entre clases. Herencia = es_un Composición = contiene_un Se permiten 2 tipos de herencia. 1. Herencia simple. Clase base o clase padre + una o mós clases derivadas o hijo. Una clase únicamente puede heredar de una clase. Ejemplo: class Persona { : int edad; ; class Becario { : float beca; ; Becario heredará de persona. SINTAXIS: class Derivada: modificador clase_base { Derivada(arg Base + arg derivada): Base(nombre arg Base) {... //Lo que haga falta : //Lo que haga falta.

8 Ejemplo: class Persona { Persona(){edad=0 Persona(int e){edad=e : int edad; ; class Becario:public Persona { Becario(){beca = 0.0 Becario(int e, float b):persona(e) { beca = b; : float beca; MODIFICADOR CLASE BASE CLASE DERIVADA public public public INACCESIBLE public INACCESIBLE public INACCESIBLE 2. Herencia múltiple. Varias clases padre. Sintaxis: class Derivada:public Base1, public Base2 { Derivada(tipo nombre):base1(nombre_atributo),base2(nombre_atributo) {... ;

9 En el archivo.h pondríamos: class Derivada:public Base1, public Base2{ Derivada(tipo nombre); ; En herencia múltiple no podemos separar en.h y.ccp por que se producen errores.

10 LIGADURA DINAMICA. Hay 2 tipos de funciones virtuales: puras o normales. A las puras le asignamos la dirección 0 o null, sin código. En las normales se da la opción en la clase derivada de implementar o no. Si en la clase derivada se implementa se llama a esa, si no se llamará a la de la clase base. La clase en la que haya una función virtual se convierte en abstracta y su constructor se convierte en virtual. No podemos crear objetos de la clase base. La ligadura dinámica retrasa hasta tiempo de ejecución el linkado de una función con su código. Pasos: 1. Crear un puntero que apunte a una clase base que contenga alguna función virtual. 2. Darle la dirección de un objeto de una clase derivada al puntero. 3. Acceder mediante -> a la función virtual.

El lenguaje C++ A partir del lenguaje C Entorno de programación Visual C++

El lenguaje C++ A partir del lenguaje C Entorno de programación Visual C++ El lenguaje C++ A partir del lenguaje C Entorno de programación Visual C++ Nuevas palabras reservadas asm inline public virtual catch new template class operator this delete private throw friend protected

Más detalles

Una lista de operadores que pueden o no sobrecargarse es la siguiente: Operadores que pueden sobrecargarse

Una lista de operadores que pueden o no sobrecargarse es la siguiente: Operadores que pueden sobrecargarse La sobrecarga de operadores, aunque puede ser una capacidad exótica, la mayoría de personas las usa implícita y regularmente se valen de los operadores sobrecargados. Por ejemplo, el operador de suma (+)

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 3

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 3 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 3 Contenidos: 1. Funciones y clases genéricas 2. Excepciones 3. Asertos 4. El puntero this 5. Redefinición

Más detalles

Herencia y polimorfismo

Herencia y polimorfismo Herencia y polimorfismo Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Herencia Hemos visto cómo crear nuestras propias clases Clase InfoAlumno para calcular las notas Supongamos ahora

Más detalles

TEMA 4 GESTIÓN DE ERRORES. Cristina Cachero, Pedro J. Ponce de León. 1 Sesión (1.5 horas) Versión 0.6 POO

TEMA 4 GESTIÓN DE ERRORES. Cristina Cachero, Pedro J. Ponce de León. 1 Sesión (1.5 horas) Versión 0.6 POO TEMA 4 GESTIÓN DE ERRORES Cristina Cachero, Pedro J. Ponce de León 1 Sesión (1.5 horas) Versión 0.6 POO Gestión Errores Objetivos Saber utilizar try, throw y catch para observar, indicar y manejar excepciones,

Más detalles

Sobrecarga de operadores, listas

Sobrecarga de operadores, listas Sobrecarga de operadores, listas mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 28.02 1 Problema: Alonso Ramírez Manzanares Computación y Algoritmos 28.02 Problema: Dadas 2 listas no vacias

Más detalles

Polimorfismo de tipo (en la herencia)

Polimorfismo de tipo (en la herencia) Polimorfismo de tipo (en la herencia) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Overriding (especialización o redefinición) Static bind (enlace estático) Dynamic bind (enlace dinámico) Clases

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 6 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 6 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase

Más detalles

Punteros y Memoria Dinámica II

Punteros y Memoria Dinámica II Repaso Punteros y Memoria Dinámica II Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es! Memoria! Qué necesita el compilador para acceder a una variable?! Punteros! Operadores &

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 11 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº11 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase

Más detalles

Tema: Sobrecarga de Operadores.

Tema: Sobrecarga de Operadores. Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen

Más detalles

PUBLICACIÓN DEL ENUNCIADO: Semana del 10 de noviembre de ENTREGA: Clase de laboratorio de la semana del 8 de diciembre de 2003.

PUBLICACIÓN DEL ENUNCIADO: Semana del 10 de noviembre de ENTREGA: Clase de laboratorio de la semana del 8 de diciembre de 2003. TELECOMUNICACIÓN Página 12 PRÁCTICAS 6ª, 7ª y 8ª: Operaciones con polinomios. OBJETIVOS: Repaso de listas dinámicas. Objetos como datos miembro de otros objetos (introducción a la herencia). Objetos con

Más detalles

Impresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos)

Impresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos) 3. Indicar la salida por pantalla (2 puntos-20 minutos) #include class EUITIelemento; class EUITIpila int num; EUITIelemento *pila[10]; EUITIpila():num(0); bool push(euitielemento *in) if(num>=10)return

Más detalles

Manejo de Excepciones. Agustín J. González ELO329

Manejo de Excepciones. Agustín J. González ELO329 Manejo de Excepciones Agustín J. González ELO329 Manejo de Excepciones El Manejo de Excepciones es un mecanismo interno para comunicar estados de error desde una parte del programa a otra. Comúnmente,

Más detalles

Clases y Objetos en C++

Clases y Objetos en C++ Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar

Más detalles

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1 Prefacio... xv 1. Orígenes de la programación orientada a objetos... 1 1.1 La crisis del software... 1 1.2 Evolución del software... 3 1.3 Introducción a la programación orientada a procedimientos... 4

Más detalles

Tema 2. Programación basada en objetos. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Tema 2. Programación basada en objetos. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas Tema 2. Programación basada en objetos Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 2.1. Objetivos Estudiar los conceptos de clase y objeto, y su implementación mediante

Más detalles

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones. Programación II. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones. Objetivos Diferenciar sobrecarga de operadores

Más detalles

Sobrecarga de Operadores II

Sobrecarga de Operadores II D é c i m o q u i n t a S e s i ó n Metodologías y Técnicas de Programación II Programación Orientada a Objeto (POO) C++ Sobrecarga de Operadores II 1 Sobrecarga de operadores unitarios (o unarios) Son

Más detalles

Objetos y memoria dinámica

Objetos y memoria dinámica Objetos memoria dinámica 1. Punteros a objetos 2. Vectores dinámicos de objetos 3. Uso de objetos dinámicos 4. Atributos dinámicos 5. Creación de objetos con atributos dinámicos 6. Destrucción de objetos

Más detalles

Tema 6: Memoria dinámica

Tema 6: Memoria dinámica : Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0

Más detalles

TEMA 4 GESTIÓN DE ERRORES. Cristina Cachero, Pedro J. Ponce de León. 1 Sesión (1.5 horas) Versión 0.6. Depto. Lenguajes y Sistemas Informáticos

TEMA 4 GESTIÓN DE ERRORES. Cristina Cachero, Pedro J. Ponce de León. 1 Sesión (1.5 horas) Versión 0.6. Depto. Lenguajes y Sistemas Informáticos TEMA 4 GESTIÓN DE ERRORES Cristina Cachero, Pedro J. Ponce de León 1 Sesión (1.5 horas) Versión 0.6 Depto. Lenguajes y Sistemas Informáticos Gestión Errores Objetivos Saber utilizar try, throw y catch

Más detalles

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el programa está en ejecución. Para ello

Más detalles

Implementación de las Clases Pila, Cola, Lista y Arbol

Implementación de las Clases Pila, Cola, Lista y Arbol 1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 28 de noviembre de 2017 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.

Más detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo. Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar

Más detalles

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá

Más detalles

OOP y C++ Indice. 0.1 Análisis orientado a objetos(1/4) Análisis orientado a objetos(2/4) 0.- OOP 1.- INTRODUCCIÓN.

OOP y C++ Indice. 0.1 Análisis orientado a objetos(1/4) Análisis orientado a objetos(2/4) 0.- OOP 1.- INTRODUCCIÓN. OOP y C++ Un lenguaje para Programadores Carlos PLATERO Indice 0.- OOP 1.-. Objetivos, palabras clave, reglas prácticas, consejos 2.- CLASES Y OBJETOS. Extensión del concepto de estructura en C 3.- HERENCIA.

Más detalles

Tema 6. Gestión dinámica de memoria

Tema 6. Gestión dinámica de memoria Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

Herencia y Polimorfismo en C++

Herencia y Polimorfismo en C++ Herencia y Polimorfismo en C++ Informática II Fundamentos de Programación 1 Herencia Concepto de "herencia" herencia": Una clase -clase derivada- puede definirse a partir de otra clase ya existente (clase

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación: Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar

Más detalles

ELO329: Diseño y Programación Orientados a Objetos 29 de Junio 2016

ELO329: Diseño y Programación Orientados a Objetos 29 de Junio 2016 Nombre: RUT: Segundo Certamen Si algo no está claro, indíquelo en su respuesta, haga una suposición razonable y resuelva conforme a ella. Primera parte, sin apuntes (32 minutos; 32 puntos): 1.- Responda

Más detalles

Estructuras de Datos y Algoritmos (ITIS). TAD Tree. Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º

Estructuras de Datos y Algoritmos (ITIS). TAD Tree. Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º PRÁCTICA 3 TAD TREE Árbol binario de búsqueda. Tabla de frecuencias. Uno de los mecanismos más sencillos

Más detalles

Tema 7. Colas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine,

Tema 7. Colas.   José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine, Tema 7. Colas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía {badia, bmartine, morales}@icc.uji.es Estructuras de datos y de la información Universitat Jaume

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

INTRODUCCIÓN A LA POO EN C++

INTRODUCCIÓN A LA POO EN C++ INTRODUCCIÓN A LA POO EN C++ ÍNDICE DEL TEMA 1.- Introducción 2.- Diferencias C/C++ 3.- Programación orientada a objetos 4.- Aspectos avanzados C++ 1 1. Introducción Lenguaje C Lenguaje de propósito general

Más detalles

Sobre Carga de Operadores

Sobre Carga de Operadores Programación Orientada o Objetos Univesidad de Los Andes - Facultad de Ingeniería Escuela de Sistemas Programación Digital II Profesor: Gilberto Diaz gilberto@ula.ve Las operaciones tradicionales que se

Más detalles

Tres elementos esenciales de la programación orientada a objetos

Tres elementos esenciales de la programación orientada a objetos Tres elementos esenciales de la programación orientada a objetos Abstracción Herencia Polimorfismo Modelado en objetos importancia del diagrama de clases: es el diagrama esencial para UML es eldepositorio

Más detalles

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005 24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos

Más detalles

Segundo Certamen Tiempo: 100 minutos

Segundo Certamen Tiempo: 100 minutos Segundo Certamen Tiempo: 100 minutos 1. Se tiene la siguiente aplicación Java. 30 a) Genere la versión Applet equivalente. b) Muestre un archivo html que incluya esta Applet. c) Con qué comando usted prueba

Más detalles

Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle

Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Contenido Introducción Clases y Objetos en C++: Módulos: Clases, estructuras y espacios

Más detalles

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329 Asignación Dinámica de Memoria Asignación Dinámica de memoria es la creación de un objeto mientras el programa está en

Más detalles

Introducción a C++ Índice

Introducción a C++ Índice Introducción a C++ 1. 2. 3. 4. 5. 6. Índice 1. Diferencias entre C y C++. 2. Diferencias entre C++ y Java. 3. Ejemplos. 4. Funciones. 5. Memoria dinámica 6. Librería de funciones. 1 1. Diferencias entre

Más detalles

Programación orientada a objetos I

Programación orientada a objetos I Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar

Más detalles

Implementación de las Clases Pila, Cola, Lista y Arbol

Implementación de las Clases Pila, Cola, Lista y Arbol 1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 13 de mayo de 2018 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos niveles.

Más detalles

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista: Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para

Más detalles

Conceptos básicos sobre C++

Conceptos básicos sobre C++ Objetivos Generales Conceptos básicos sobre C++ El lenguaje C++ Clases Sobrecarga de funciones Sobrecarga de operadores Plantillas (templates) 1 2 El lenguaje C++ El lenguaje C++ (II) C++ es un lenguaje

Más detalles

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones

Más detalles

Clases, Objetos y Métodos (II)

Clases, Objetos y Métodos (II) Clases, Objetos y Métodos (II) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Introducción al concepto de clase Elementos de una clase Implementación: declaración y definición Permisos y encapsulamiento

Más detalles

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1). ÁRBOL BINARIO - Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la

Más detalles

Examen Teórico Convocatoria de Junio de 2012

Examen Teórico Convocatoria de Junio de 2012 Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica

Más detalles

Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM

Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM C vs. C++ C es un lenguaje procedural el elemento central del son las funciones. Cualquier función se puede comunicar con

Más detalles

Tema: Arreglos de Objetos en C++.

Tema: Arreglos de Objetos en C++. Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.

Más detalles

Temas. Taller III 2007 Gentile,Vazquez

Temas. Taller III 2007 Gentile,Vazquez Temas Arreglos de Objetos Punteros de Objetos Arreglos de Punteros de Objetos Constructor de Copia Herencia Constructores y Destructores en Herencia Accesibilidad en Herencia 1 Arreglo de objetos Televisor

Más detalles

Informática Industrial I

Informática Industrial I Informática Industrial I Grado en Ingeniería en Electrónica Industrial y Automática Álvaro Castro González Nicolas Burus Mohamed Abderrahim José Carlos Castillo Montoya Práctica 5 Clases abstractas y polimorfismo

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011

Más detalles

Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1

Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1 Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Empresa Videojuegos (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Rectangulo (1.0 pto.)... 3 1.3 Ejercicio

Más detalles

Francisco Javier Peña Escobar Universidad del Valle

Francisco Javier Peña Escobar Universidad del Valle Francisco Javier Peña Escobar Universidad del Valle franpena@univalle.edu.co Universidad del Valle - 2009 Relaciones entre clases Relaciones entre clases. Herencia. Constructores y destructores. Lista

Más detalles

Polimorfismo. Métodos virtuales

Polimorfismo. Métodos virtuales Polimorfismo. Métodos virtuales El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender

Más detalles

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 DELEGADOS. Ing. Bruno López Takeyas, M.C.

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 DELEGADOS. Ing. Bruno López Takeyas, M.C. CAPÍTULO 8 DELEGADOS 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Qué es un delegado? Para qué sirve? En qué circunstancias se recomienda implementar delegados? Qué es un método anónimo?

Más detalles

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001 1 Asignación Dinámica Asignación Dinámica es la creación de un objeto mientras el

Más detalles

Tema 3. Herencia. Programación Avanzada. Jorge Badenas

Tema 3. Herencia. Programación Avanzada. Jorge Badenas Tema 3. Herencia Programación Avanzada Jorge Badenas 1. Herencia Herencia: relación entre dos clases, donde una clase nueva se define como una extensión de la otra. En la nueva clase sólo necesitamos escribir

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 12 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 12 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Herencia

Más detalles

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +. APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje

Más detalles

Sebastián García Galán

Sebastián García Galán Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán sgalan@ujaen.es Variables y tipos de datos Operaciones y operadores Clases y objetos Tipos

Más detalles

3. LA HERENCIA. Necesidad de la herencia

3. LA HERENCIA. Necesidad de la herencia página 1 3. LA HERENCIA Necesidad de la herencia La mente humana clasifica los conceptos de acuerdo a dos dimensiones: pertenencia y variedad. Se puede decir que el Ford Fiesta es un tipo de coche (variedad

Más detalles

Tema: Plantillas en C++.

Tema: Plantillas en C++. Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de

Más detalles

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo) . Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos

Más detalles

Ejercicios propuestos de. Programación orientada a objetos. con C++ Cristina Cachero Pedro J. Ponce de León

Ejercicios propuestos de. Programación orientada a objetos. con C++ Cristina Cachero Pedro J. Ponce de León de Programación orientada a objetos con C++ Cristina Cachero Pedro J. Ponce de León Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante Esta obra está bajo licencia Creative Commons

Más detalles

C O N T E N I D O. Presentación.. 1 Preguntas Unidades I y II Clases y Constructores. Respuesta corta. 8 Verdadero / Falso. 9 Opción Múltiple.

C O N T E N I D O. Presentación.. 1 Preguntas Unidades I y II Clases y Constructores. Respuesta corta. 8 Verdadero / Falso. 9 Opción Múltiple. C O N T E N I D O Presentación.. 1 Preguntas Unidades I y II Clases y Constructores Respuesta corta. 2 Verdadero / Falso. 4 Opción Múltiple. 4 Preguntas Unidad III Funciones Amigas y Sobrecarga Respuesta

Más detalles

Creación de clases en C++ (I)

Creación de clases en C++ (I) Clases en C Creación de clases en C++ (I) Programación Orientada a Objeto Ing. Civil en Telecomunicaciones Convertir estructura InfoAlumno en una clase Escribir una clase simple en C++, con constructores

Más detalles

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa Programación 1 Tema 2 Lenguaje de programación y ejecución de un programa Índice Lenguaje de programación Símbolos Sintaxis Semántica Computador Ejecución de un programa Sistema operativo, entorno de programación

Más detalles

Prof. Dr.Paul Bustamante

Prof. Dr.Paul Bustamante Prácticas de C++ Practica Nº 14 Informática II Fundamentos de Programación Prof. Dr.Paul Bustamante Practica Nº 14 Programación en C++ Pág. 2 ÍNDICE ÍNDICE... 2 1. Introducción... 2 1.1 Ejercicio 1: Grabando

Más detalles

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Tema: Tipos Abstractos de Datos (TAD s) en C++. Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

Manejo de Excepciones

Manejo de Excepciones Manejo de Excepciones Agustín J. González ELO329 ELO329 1 Lectura sugerida Texto en línea: Eckel, Bruce. Thinking About C++, 2nd Edition, Prentice-Hall, 2000. Gratis en www.bruceeckel.com. ELO329 2 Manejo

Más detalles

Programación C++(3 Parte) Dr. Oldemar Rodríguez Rojas Maestría en Computación Universidad de Costa Rica

Programación C++(3 Parte) Dr. Oldemar Rodríguez Rojas Maestría en Computación Universidad de Costa Rica Programación C++(3 Parte) Dr. Oldemar Rodríguez Rojas Maestría en Computación Universidad de Costa Rica Ejemplo 2.2: Noción de "Encapsulación" en C++ La implementación ESTRUCTURADA de una pila mediante

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación: Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica

Más detalles

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 07 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 07 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1:

Más detalles

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

Más detalles

Definición y Conversión de datos. Agustín J. González ELO-329

Definición y Conversión de datos. Agustín J. González ELO-329 Definición y Conversión de datos Agustín J. González ELO-329 1 Calificador Const El calificador const previene que un objeto sea modificado con posterioridad a su definición. El objeto calificado como

Más detalles

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos Academia de computación de IE, ICA e ISISA Unidad didáctica Programación Orientada a Objetos Elaboración y diseño de cien reactivos de opción múltiple para la unidad didáctica programación orientada a

Más detalles

INDICE 1. Introducción a Turbo C++ 2. Utilización de C++

INDICE 1. Introducción a Turbo C++ 2. Utilización de C++ INDICE Introducción XVII 1. Introducción a Turbo C++ 1 Programación orientada a objetos 1 Definición de términos 2 Conceptos de evolución 3 Por qué molestarse? 6 De C a C++ 8 C++ y C ANSI 8 Prototipos

Más detalles

Manejo de Clases y Objetos. Manejo de Clases y Objetos

Manejo de Clases y Objetos. Manejo de Clases y Objetos Cod. 1728.61 PLATAFORMA.NET Y SERVICIOS WEB nestor@lsi lsi.uniovi.es Dpto. de Informática - Laboratorio de Tecnologías de Orientación a Objetos http://www www.ootlab.uniovi.es CONCEPTOS BÁSICOS Objeto:

Más detalles

Prueba N o 1. Programación II

Prueba N o 1. Programación II UNIVERSIDAD ANDRÉS BELLO 1 Prueba N o 1 Programación II Profesores: José Luis Allende y Carlos Beyzaga. Fecha: 10 de Septiembre de 2013 Nombre: Nota: Instrucciones: Coloque su nombre a todas las hojas.

Más detalles

Construcciones del Lenguaje Java

Construcciones del Lenguaje Java Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.

Más detalles

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje

Más detalles

Introducción a la Programación orientada a objetos con C++

Introducción a la Programación orientada a objetos con C++ Introducción a la Programación orientada a objetos con C++ Informática Industrial Ing. en automática y electrónica Industrial Isidro Calvo Informática Industrial 2006/07 2 Objetivos principales Exponer

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder

Más detalles

Hoja de ejercicios del Tema 9

Hoja de ejercicios del Tema 9 Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;

Más detalles