Inherited/fr

From Lazarus wiki
Revision as of 14:13, 17 February 2020 by Trev (talk | contribs) (Fixed syntax highlighting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)


Dans une méthode virtuelle, il est souvent nécessaire d'appeler l'implémentation de la méthode virtuelle de la classe parent. Ceci peut être fait avec le mot-clé inherited. De la mêm façon, le mot-clé inherited peut être employé pour toute méthode de la classe parent.

Ce cas est le plus simple :

Type  
  TMyClass = Class(TComponent)  
    Constructor Create(AOwner : TComponent); override;  
  end; 

Constructor TMyClass.Create(AOwner : TComponent);  
begin  
  Inherited;  
  // Do more things  
end;

Cas des constructeurs et destructeurs

Constructeur, Exemple 1 :

  ...
  TTest.Create;
  begin
    Inherited; // Toujours au début des constructeurs et démarre le constructeur (code seulement) de la classe parent
    ...
  end;

Constructeur, exemple 2 :

  ...
  TTest.Create(...);
  begin
    Inherited Create(...); // Toujours au début des constructeurs et démarre le constructeur (code seulement) de la classe parent
    ...
  end;
  ...

Destructeur, exemple 3 :

  TTest.Destroy;
  begin
    ...
    Inherited;  // Toujours à la fin des destructeurs et démarre le destructeur (code seulement) de la classe parent
  end;
  ...