LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

6.5. Sobrecarga (overload) de funciones y procedimientos.

 

anterior :: indice :: siguiente

 

La sobrecarga de funciones y procedimientos consiste en crear varias funciones y procedimientos con el mismo nombre o identificador, diferenciándose en la cantidad y uso de parámetros diferentes. Los parámetros deben diferenciarse en sus tipos de datos.

Es decir se puede crear un procedimiento para ordenar una lista de nombres que acepte como parámetro un arreglo con cadenas de caracteres, y el mismo identificador del procedimiento anterior se puede usar para crear otro procedimiento para ordenar una lista de números que acepte como parámetro un arreglo de enteros. A continuación el ejemplo:

 

 
{$codepage UTF8}

PROCEDURE Ordenar(Var lista:array of integer);
 Var i,j:longint;
     aux:integer;
 Begin
   For i:=1 to High(lista) do  
    Begin
      aux:=lista[i];
      j:=i-1;
      While ( (j>=0) and (lista[j]>aux) ) do
        Begin
          lista[j+1]:= lista[j];
          j := j - 1;
        End;
        lista[j+1]:=aux;
    End;   
 End;    
 
PROCEDURE Ordenar(Var lista:array of string);
 Var i,j:longint;
     aux:string;
 Begin
   For i:=1 to High(lista) do  
    Begin
      aux:=lista[i];
      j:=i-1;
      While ( (j>=0) and (lista[j]>aux) ) do
        Begin
          lista[j+1]:= lista[j];
          j := j - 1;
        End;
        lista[j+1]:=aux;
    End;   
 End;     
   
VAR lista01:array [1..10] of integer = (10,15,12,14,11,8,1,5,10,20);
    lista02:array [1..5] of string = ('Jose','Ana','Marie','Carlos','Luis');
    i : integer;  
          
BEGIN      
  Ordenar(lista01);
  Ordenar(lista02);
  for i:=1 to 10 do Writeln(lista01[i]);
  for i:=1 to 5 do Writeln(lista02[i]);
END.
 

Código fuente 13: Sobrecarga del procedimiento Ordenar.

 

En el caso de usar la sobrecarga en funciones no se puede crear funciones con el mismo nombre y que solamente se diferencien en el valor devuelto por la función. No es posible hacer una sobrecarga de una función o procedimiento diferenciando sus parámetros con el uso de la palabra reservada Var, es decir si un procedimiento tiene un parámetro que use la palabra reservada Var y el otro procedimiento tiene el mismo parámetro sin el uso de Var, no significa que se pueden sobrecargar; lo mismo sucede con las funciones.

 

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS