inherited em function

Delphi

23/09/2006

o inherited não pode ser utilizado nas funções??

eu tinha em um form padrao um procedimento virtual que eu declarava nos herdados e colocava o override.
resolvi mudar para uma function, mas no código onde tinha inherited ocorre um erro.

pq não é permitido utilizar inherited nas function´s?


Raserafim

Raserafim

Curtidas 0

Respostas

Marco Salles

Marco Salles

23/09/2006

acredito que sim Raserafim . desde que voce forneça explicitamente os paramentros

assim

function Tfilho.MeuMetodo(p:Paramentrros): string; begin inherited MeuMetodo(p); end;



GOSTEI 0
Cesar Romero

Cesar Romero

23/09/2006

o inherited clama o mesmo método da classe superior com os mesmos parâmetros, se você mudou para uma função, então você está fazendo um overload (polimorfismo), para chamar a procedure da classe superior vc deve passar a assinatura na chamada, como Marco Salles sugeriu.

[]s


GOSTEI 0
Raserafim

Raserafim

23/09/2006

humm, entendi.

valeu cesarliws, valeu marco salles,

depois vou fazer o teste


GOSTEI 0
Michael

Michael

23/09/2006

Complementando a resposta do colega [b:eca2d6de8d]Marcos Salles[/b:eca2d6de8d], vc deve atribuir o valor de retorno de [b:eca2d6de8d]inherited [/b:eca2d6de8d]à variável [b:eca2d6de8d]Result [/b:eca2d6de8d](ou outra qualquer) na sua nova função:

function TFilho.MeuMetodo(P: Parametro): string;
begin
  Result := inherited MeuMetodo(P);
  // Faz alguma coisa com Result
end;


[]´s


GOSTEI 0
POSTAR