Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Ver Resultados de Encuesta: Que crees que es mejor?
Métodos sobrecargados 14 93,33%
Métodos "repetidos" 1 6,67%
Votantes: 15. Tú no puedes votar en esta encuesta

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 22-10-2016
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
La sobrecarga de métodos es una solución elegante al problema de cómo nombrar a dos rutinas pertenecientes a la misma clase y que hacen la misma tarea, y cuya funcionalidad sólo se diferencia por los parámetros que acepta. En lo de misma tarea hay que hacer hincapié, ya que puede ser tentador llamarle de la misma manera a diversos métodos que desempeñan funciones muy diferentes, con la venia de que los parámetros supuestamente despejan cualquier duda de qué es lo que el programa va a hacer cuando se llame a un método o a otro. Dentro de una clase debemos evitar la sobrecarga de un método más allá de una sola funcionalidad general definida para todas las versiones que se escriban del mismo. Dos funcionalidades no tan semejantes y nombradas de la misma manera en el mismo contexto podría ser considerado una mala práctica (lección que aprendí en años recientes).

Mi voto es para los métodos sobrecargados puestos con juicio.

Cita:
Empezado por AgustinOrtu Ver Mensaje
Nunca entendi porque en Pascal tenemos que avisarle al compilador que estamos sobrecargando un metodo
Es porque Pascal, a diferencia de lenguajes sádicos como C++, previene al programador de cometer muchas pequeñas pifias que de otro modo tendrían repercusiones después, incluso en tiempo de ejecución. Escribiste SetData queriendo escribir SetDate, pero el impertérrito compilador de C++ determinó que querías definir una sobrecarga del ya existente método SetData.

Cita:
Empezado por AgustinOrtu Ver Mensaje
Otra cosa que me molesta de la sobrecarga, esta relacionada con las funciones [...] el compilador podria diferenciar entre las invocaciones:
Código Delphi [-]
  // error de compilacion, E2252 Method 'Bar' with identical parameters already exists
  TFoo = class
  public
    function Bar: Integer; overload;
    function Bar: string; overload;
  end;
Sin embargo, si usamos un procedure con un parametro de salida out, si que compila:
Código Delphi [-]
  TFoo = class
  public
    procedure Bar(out Result: Integer); overload;
    procedure Bar(out Result: string); overload;
  end;
Lo dicho es debido a que una función, por lo general, también puede ser ejecutada como procedimiento:
Código Delphi [-]
Foo1.Bar;  // ¿A cuál de los dos métodos función "Bar" estoy llamando?

Un abrazo.
Un abrazo (sobrecargado).

Al González.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Punteros de Metodos Paulao Varios 1 19-07-2011 01:53:29
Métodos de estudio. ixMike Humor 0 19-12-2007 20:37:21
Metodos abstractos nikotina JAVA 6 17-08-2007 19:29:01
herencia de metodos supermilloriver OOP 7 07-01-2006 14:46:01
Métodos de clase. jplj OOP 14 22-11-2004 09:30:19


La franja horaria es GMT +2. Ahora son las 05:55:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi