![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola:
Tengo dos funciones algo asi: function genCod():string: overload; function genCod():integer: overload; Me sale un error de Declaration of 'genCod' differs from previous declaration Segun tengo entendido las funciones sobrecargadas pueden diferir de acuerdo al tipo de dato que devuelven y/o bien de acuerdo al numero de parametros. Alguna sugerencia? |
#2
|
||||
|
||||
La sobrecarga de procedimientos, se refiere a procedimientos o funciones con el mismo tipo de resultado pero diferentes parámetros.
Código:
function GetValue(Value: integer): string; overload; function GetValue(Value: string): string; overload; Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#3
|
||||
|
||||
Cita:
// Saludos |
#4
|
||||
|
||||
Por cierto, si te preguntas por qué es así la razón es muy sencilla. El compilador podría distinguir entre ambas declaraciones fácilmente pero sería más difícil hacerlo en llamadas a la función. Una función puede llamarse sin ser asignada a ningún valor, esto es, como si fuera un procedimiento y el compilador ya no tendría cómo saber cuál de ambas versiones usar. Y aún asignándola a un valor, ¿qué pasa si es es un variant? Lo mismo.
// Saludos |
![]() |
|
|
![]() |
|