Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Interfaces en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=19788)

omar_e_rc 27-03-2005 00:36:21

Interfaces en Delphi
 
Supongase que tengo una interface sobre una clase y mi clase es una clase abstracta. Como hago para tener 2 funciones con el mismo nombre ya que la directiva "override" no me funciona y me causa error. En ambos casos.


Código:

type
TVisitaListaObj = function(Dato1, Dato2: Pointer): Boolean of object;
TVisitaLista = function(Dato1, Dato2: Pointer): Boolean;
 
//Interface de Lista
ILista = interface(IUnknown)
['GUI']
        procedure Eliminar(Data: Pointer);
        procedure Insertar(Data: Pointer);
        function Buscar(Data: Pointer): Boolean;
        function ParaCadaElemento(var ARef;
        F: TVisitaListaObj): Boolean; override;

        function ParaCadaElemento(var ARef;
        F: TVisitaLista): Boolean; override;
end;

 
//Clase Abstracta de Lista
TLista = class(TInterfacedObject, ILista)
private
        FFuncionComparacion: TComparacionLista;
public
        constructor Create(F: TComparacionLista);
        procedure Eliminar(Data: Pointer); virtual; abstract;
        procedure Insertar(Data: Pointer); virtual; abstract;
        function Buscar(Data: Pointer):Boolean; virtual; abstract;
        function ParaCadaElemento(var ARef;
        F: TVisitaListaObj): Boolean; override; virtual; abstract;
        function ParaCadaElemento(var ARef;
        F: TVisitaLista): Boolean; override; virtual; abstract;
end;

 
TListaDinamica = class(TLista)
private
        FL: TPNodoLista;
        function Compara(Dato: Pointer; var ARef): Boolean;
        function Encuentra(Dato: Pointer;
var ARef): Boolean;
public
        constructor Create(F: TComparacionLista);
        procedure Eliminar(Data: Pointer); override;
        procedure Insertar(Data: Pointer); override;
        function Buscar(Data: Pointer):Boolean; override;
        function ParaCadaElemento(var ARef;
        F: TVisitaListaObj): Boolean; override;
        function ParaCadaElemento(var ARef;
        F: TVisitaLista): Boolean; override;
end;


roman 27-03-2005 01:09:40

No es override sino overload.

// Saludos


La franja horaria es GMT +2. Ahora son las 07:15:19.

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