Titulación: Asignatura: Código: Año: Periodo: Carácter: No de Créditos: Departamento: Área de Conocimiento: Curso: Ingeniero Técnico de Telecomunicación (38) PROGRAMACIÓN AVANZADA. 20590 2º Cuatrimestre 1º Troncal 4.5 (4,5 Teor, 0 Práct, ) Automática Arquitectura y Tecnología de Computadores (ATC) 2012-2013 PROGRAMA DE TEORÍA Lección 1. Programación orientada a objetos. Pensar en objetos, Clases y objetos, Mensajes y métodos, Diseño de una clase de objetos, Constructores, Herencia. Lección 2. Qué aporta C++. Historia del lenguaje C++. Resumen de la biblioteca de C++. C++ para programadores de c. Elementos del lenguaje. El operador de resolución del ámbito. Funciones en línea. Funciones sobrecargadas. Operadores sobrecargados. Referencias. Clases. Plantillas. Espacios de nombres. Directriz using. Flujos de entrada salida estándar. Contenedores: vector, map y string. Excepciones. Los operadores new y delete. Lección 3. Clases. Definición de una clase. Atributos. Métodos de una clase. Control de acceso a los miembros de la clase. Clases en ficheros de cabecera. Métodos sobrecargados. Parámetros con valores por omisión. El puntero implícito this. Métodos y objetos constantes. Constructor. Asignación de objetos. Constructor copia. Destrucción de objetos. Punteros como atributos de una clase. Miembros static de una clase. Atributos que son objetos. Clases internas. Integridad de los datos. Devolver un puntero o una referencia. Matrices de objetos. Funciones amigas de una clase. Punteros a miembros de una clase. Clase contenedor: vector, map, list y string. Lección 4. Operadores sobrecargados. Sobrecargar un operador. Sobrecarga de operadores binarios. Sobrecarga de operadores unarios. Incremento y decremento. Operadores unarios/binarios. Conversión de tipos definidos por el usuario: conversión mediante constructores, operadores de conversión. Asignación. Indexación. Llamada a función. Desreferencia. Sobrecarga de los operadores new y delete. Lección 5. Clases derivadas. Clases derivadas y herencia. Definir una clase derivada. Control de acceso a los miembros de las clases. Qué miembros hereda una clase derivada. Atributos con el mismo nombre. Redefinir métodos de la clase base. Constructores de clases derivadas. Copia de objetos. Destructores de clases derivadas. Jerarquía de clases. Funciones amigas. Punteros y referencias. Conversiones implícitas. Conversiones explícitas. Métodos virtuales. Cómo son implementados los métodos virtuales. Constructores virtuales. Destructores virtuales. Información de tipos durante la ejecución. Operador dynamic_cast. Operador typeid. Polimorfismo. Clases abstractas. Herencia múltiple. Clases base virtuales. Redefinición de métodos de bases virtuales. Conversiones entre clases. Lección 6. Plantillas. Definición de una plantilla. Funciones genéricas. Especialización de plantillas de función. Sobrecarga de plantillas de función. Organización del código de las plantillas. Clases genéricas. Especialización de plantillas de clase. Derivación de plantillas. Otras características de las plantillas. Lección 7. Excepciones. Excepciones de C++. Manejar excepciones. Lanzar una excepción. Capturar una excepción. Excepciones derivadas. Capturar cualquier excepción. Relanzar una excepción. Crear excepciones. Especificación de excepciones. Excepciones no esperadas. Flujo de ejecución. Cuándo utilizar excepciones y cuándo no. Adquisición de recursos. Punteros automáticos. Lección 8. Flujos. Visión general de los flujos de e/s. Búferes. Descripción de los búferes y flujos: clases streambuf, filebuf, ostream, istream, iostream, ofstream, ifstream, fstream. E/S carácter a carácter. E/S de cadenas de caracteres. Entrada/salida con formato. E/S utilizando registros. Abriendo ficheros para acceso secuencial. Utilización de dispositivos estándar. Acceso aleatorio a ficheros en el disco. Cadenas de caracteres. TOTAL CRÉDITOS TEÓRICOS/AREA DE: 3 / ATC BIBLIOGRAFÍA El lenguaje de programación C++. Stroustrup B. C++ Premier. Stanley B. Lippman and Josée Lajoie. Programación orientada a objetos con C++. Ed. RA-MA. Fco. Javier Ceballos. Lenguajes de programación. Diseño e Implementación. Terence W.Pratt. Marvin V. Zelkowitz. Prentice Hall. Como programar en C/C++. Ed. Prentice Hall. H.M.Deitel & P.J.Deitel.