Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Sobrecarga

Curso de Ada - Sobrecarga

 ****- (10 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
28. Sobrecarga
En Ada se puede utilizar un identificador con más de un significado. Esto es lo que se conoce como sobrecarga. Los identificadores que se pueden sobrecargar son:


||

||

Sobrecarga de literales de enumeración


Se pueden emplear identificadores iguales en distintos tipos enumeración, por ejemplo:

declare type TColor is (ROJO, VERDE, AZUL); type TLuz is (ROJO, AMARILLO, VERDE); Pixel: TColor; Indicador: TLuz := VERDE; begin -- Se emplea calificador para distinguir. Pixel := TColor'(VERDE); end;

Sobrecarga de operadores


También se puede utilizar una función para definir una operación y sobrecargar cualquiera de los operadores ya establecidos excepto /= (que toma su valor a partir del operador =, pero que puede redefinirse si el valor de retorno no es de tipo Boolean). Por ejemplo, se puede hacer una función "*" que multiplique escalarmente dos vectores:

function "*" (A, B: Vector) return Float is Resultado: Float := 0.0; begin for I in A'range loop Resultado := Resultado + A(I) * B(I); end loop; return Resultado; end "*";

Las reglas a cumplir a la hora de sobrecargar un operador son:

  • No cambiar la sintaxis.
  • No cambiar el número de parámetros de un operador (recuérdese que + y - pueden ser unarios o binarios).
  • La precedencia se mantiene.

Por otro lado, una recomendación muy importante es no definir un operador para un nuevo tipo dándole un significado distinto al del operador predefinido. Es decir, + siempre ha de representar conceptos relacionados con la adición; *, multiplicación; and, conjunción, etc.

Sobrecarga de subprogramas


Un subprograma sobrecargará un significado ya existente siempre que su especificación sea suficientemente diferente, es decir, pueden existir dos subprogramas con el mismo identificador siempre que se distingan por el número o tipo de sus parámetros. Por ejemplo:

declare type TAlimento is (PAN, LECHE, ACEITE); type TProducto_Automóvil is (ACEITE, BUJÍA); procedure Comprar (ProdAlim: TAlimento) is -- ... procedure Comprar (ProdAutom: TProducto_Automóvil) is -- ... begin Comprar (ACEITE); -- Ambigüedad. Comprar (TAlimento'(ACEITE)); -- Se supera la ambigüedad. Comprar (ProdAlim => ACEITE); -- También se supera la ambigüedad. end;

Manual de referencia de Ada


Tabla de contenidos
  1. 1 - Introducción
  2. 2 - Historia
  3. 3 - Manual de referencia
  4. 4 - Instalación
  5. 5 - Hola Mundo
  6. 6 - Elementos del lenguaje
  7. 7 - Tipos
  8. 8 - Enteros
  9. 9 - Enumeraciones
  10. 10 - Coma flotante
  11. 11 - Coma fija
  12. 12 - Arrays
  13. 13 - Strings
  14. 14 - Registros
  15. 15 - Registros discriminados
  16. 16 - Registros variantes
  17. 17 - Punteros a objetos
  18. 18 - Punteros a subprogramas
  19. 19 - Tipos derivados
  20. 20 - Tipos etiquetados (orientación a objetos)
  21. 21 - Subtipos
  22. 22 - Objetos (variables y constantes)
  23. 23 - Atributos
  24. 24 - Expresiones
  25. 25 - Operadores
  26. 26 - Sentencias y estructuras de control
  27. 27 - Subprogramas
  28. 28 - Sobrecarga
  29. 29 - Entrada/salida
  30. 30 - Pragmas
  31. 31 - Interfaz con otros lenguajes
  32. 32 - Diseño y programación de sistemas grandes
  33. 33 - Paquetes
  34. 34 - Clausula use
  35. 35 - Clausula with
  36. 36 - Paquete Standard
  1. 37 - Declaraciones
  2. 38 - Ámbito
  3. 39 - Visibilidad
  4. 40 - Renombrado
  5. 41 - La biblioteca Ada (unidades y subunidades)
  6. 42 - Unidades de biblioteca
  7. 43 - Unidades hijas
  8. 44 - Subunidades
  9. 45 - Compilación separada y dependiente
  10. 46 - Tipos abstractos de datos
  11. 47 - Tipos limitados
  12. 48 - Unidades genéricas
  13. 49 - Excepciones
  14. 50 - Paquete Ada.Exceptions
  15. 51 - Concurrencia
  16. 52 - Tareas
  17. 53 - Sincronización de tareas mediante puntos de entrada o citas (entry)
  18. 54 - Aceptación de citas (accept)
  19. 55 - Selección de citas (select)
  20. 56 - Llamadas a punto de entrada complejas
  21. 57 - Tareas dinamicas: creación dinamica de tareas (tipos t
  22. 58 - Dependencia de tareas
  23. 59 - Ejemplos de tareas
  24. 60 - Programación distribuida con GLADE
  25. 61 - Novedades de Ada 2005
  26. 62 - Unidades predefinidas
  27. 63 - Paquete Ada.Strings.Fixed
  28. 64 - Paquete Ada.Strings.Unbounded
  29. 65 - Paquete Ada.Text_IO
  30. 66 - Paquete Ada.Text_IO.Editing
  31. 67 - Paquete Ada.Float_Text_IO
  32. 68 - Paquete Ada.Sequential_IO
  33. 69 - Paquete Ada.Command_Line
  34. 70 - Paquete Interfaces
  35. 71 - Recursos en la Web
Autor y licencia de 'Curso de Ada - Sobrecarga'
José Alfonso Malo Romero Extraído de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n GNU Free Documentation License
El contenido está disponible bajo los términos de GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Ada - Sobrecarga'

En el presente trabajo se analizan los resultados de un grupo de investigaciones que... Más »
Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y... Más »
Este es un curso tremendamente completo, guiado y con ejemplos y prácticas pensadas para convertirlo... Más »
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una... Más »
Gente Wiki
Lisi Campos
Soy profesora de la Facultad de Contabilidad y Finanzas de la Universidad de la Habana, mi área es la contabilidad...
Agustín P. Pérez Campos
Músico. Director de orquesta. Responsable de la cátedra de armonía y análisis musical. (posadas - misiones - argentina).
Francisco
Profesional en gerencia de sistemas y tecnologías de información con experiencia en administración de centro de computo, especialista en implementación...
Carmen Graciela Arbulú Pérez Vargas
Académica y docente universitaria en pre grado y post grado , soy mgsc@ en tecnología de la información...
Empresas de formación, Pedagogía,...
Abel Luis Lino Asin
Soy psicólogo y a la vez, profesor de ed. Física, estoy interesado en el estudio del movimiento intencionado y...
Jose Secondino
Actualmente trabajo en educacion secundaria como docente del area de e ducacion para el trabajo...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?