Investigacion programacion orientada a objetos c++
Enviado por kanelo2000 • 12 de Junio de 2021 • Trabajo • 3.372 Palabras (14 Páginas) • 94 Visitas
[pic 1] [pic 2]
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
MATERIA: PROGRAMACION ORIENTADA A OBJETOS.
ALUMNO: MEDINA PEREZ SEBASTIAN DALI
INVESTIGACIÓN TERCER PARCIAL.
INDICE
1.- PALABRA RESERVADA TEMPLETE
2.-DECLARACIÓN Y DEFINICIÓN DE UNA FUNCIÓN TEMPLETE
3.- MANEJO DE PLANTILLAS EN EL AMBIENTE DE PROGRAMACION
(TURBO C++, BORLAND C++, ETC)
4.- ANALISIS Y DISEÑO ORIENTADO A OBJETOS EN LA RESOLUCION DE UN PROBLEMA
5.- CODIFICACION
6.-PRUEBAS MODULARES E INTEGRALES
7.- MANTENIMIENTO
PALABRA RESERVADA TAMPLETE.
plantillas o templates. Una plantilla es una manera especial de escribir funciones y clases para que estas puedan ser usadas con cualquier tipo de dato, similar a la sobrecarga, en el caso de las funciones, pero evitando el trabajo de escribir cada versión de la función. Las ventajas son mayores en el caso de las clases, ya que no se permite hacer sobrecarga de ellas y tendríamos que decidirnos por una sola o hacer especializaciones usando la herencia.
La magia de las plantillas está en no definir un tipo de dato desde el principio, sino dejar esto como algo pendiente y usar algo que permita manejar varias opciones, de hecho se usa una variable para este propósito. Veamos la sintaxis para el caso de las funciones:
[pic 3]
El identificador es el símbolo que guarda el tipo de dato que se ha de usar una vez elegido, por lo que en la definición de la función deberá utilizarse en lugar de los nombres de los tipos de datos, de esta manera queda hecha una función genérica a la cual podemos llamar función-plantilla.
Tal vez con un ejemplo esta idea quede más clara. Pensemos en una función que nos retorne el mayor de dos datos que le demos como argumentos y que sirva con cualquier tipo:
[pic 4]
El identificador que usamos es “tipo”, por eso el tipo de dato de retorno y el de los parámetros debe ser ese identificador. Durante la compilación del programa, en la invocación a la función, se resuelve el tipo que se usará y el compilador escribirá, con base en la plantilla, una función que sirva con el tipo de dato resuelto y será la que realmente se utilice para dicha invocación.
Se puede usar una especificación explícita para el tipo de dato que se usará en la función escribiendo <tipo_dato> o dejar que el compilador resuelva el tipo con los argumentos. Cabe destacar que las plantillas funcionan no solo con tipos de datos primitivos sino también con los estructurados como las clases, aunque para nuestro ejemplo debemos tener sobrecargado el operador de comparación usado en la definición de la función “>”.
La función no sirve cuando los tipos de los datos son diferentes, entonces no podríamos usarla con un entero y un real, porque solamente se ha definido un identificador de tipo. Para usar más tipos basta con definir más identificadores, de esta manera podríamos escribir la función de la siguiente forma:
[pic 5]
Clases-plantilla
podemos escribir también clases con plantillas, llamadas clases-plantilla, y crear objetos que sirvan con cualquier tipo de dato, esta característica es de gran ayuda al momento de escribir, por ejemplo, una clase para arreglos o para matrices que sirven con cualquier tipo y no solo con uno.
En este caso, el identificador de tipo sirve en toda la definición de la clase, ya sea para los atributos o los métodos, a continuación tenemos la sintaxis para declarar una clase-plantilla:
[pic 6]
Se entiende mejor la idea con un ejemplo, veamos algo simple:
[pic 7]
Con esta clase podemos instanciar objetos que representan coordenadas de cualquier tipo de dato, por ejemplo:
[pic 8]
2.-DECLARACIÓN Y DEFINICIÓN DE UNA FUNCIÓN TEMPLETE
Definición: Una plantilla es una manera especial de escribir funciones y clases para que estas puedan ser usadas con cualquier tipo de dato, similar a la sobrecarga, en el caso de las funciones, pero evitando el trabajo de escribir cada versión de la función.
Declaración: La sintaxis para declarar una plantilla de función es parecida a la de cualquier otra función, pero se añade al principio una presentación de la clase que se usará como referencia en la plantilla:
[pic 9]
La sintaxis para declarar una plantilla de clase es parecida a la de cualquier otra clase, pero se añade al principio una presentación de la clase que se usará como referencia en la plantilla:
[pic 10]
3.- MANEJO DE PLANTILLAS EN EL AMBIENTE DE PROGRAMACIÓN
(TURBO C++, BORLAND C++, ETC)
turbo c++.
Se puede utilizar una plantilla de función cuando realiza el trabajo en función de los tipos de datos genéricos. A menudo se utiliza para escribir algoritmos cuando el flujo del programa sería una muestra, pero el tipo de datos difiere de un caso a otro.
A continuación, se proporciona una plantilla de función de muestra, como puede ver, hace la simple adición de un tipo de datos genérico llamado clase que se definirá más adelante. Cuando comenzamos a usar esta función de plantilla, el compilador generará una función con los tipos de datos reales. En caso de que estemos usando esta función en 3 tipos de datos diferentes, entonces tendremos 3 conjuntos de funciones diferentes en tiempo de ejecución. En tiempo de ejecución, no habrá ninguna "plantilla" de llamada de código. Todas las plantillas se reemplazarán con argumentos reales durante el tiempo de compilación.
Muchas bibliotecas de clases y algoritmos se desarrollan utilizando plantillas. Proporciona la operación sobre tipos de datos genéricos. El uso de plantillas no aumentará ni disminuirá durante el tiempo de ejecución. El mantenimiento del código será más fácil mediante el uso de plantillas.
En el siguiente ejemplo, tendremos dos conjuntos de funciones de adición generadas por el compilador, uno para int y el otro para double. En caso de que no estemos usando esta función de plantilla, el compilador no generará ni una sola función.
...