Difference between revisions of "Inherited/fr"

From Lazarus wiki
Jump to navigationJump to search
m
Line 17: Line 17:
 
   // Do more things   
 
   // Do more things   
 
end;  
 
end;  
 +
</syntaxhighlight>
 +
 +
== Cas des constructeurs et destructeurs ==
 +
Constructeur, Exemple 1 :<br>
 +
<syntaxhighlight>
 +
  ...
 +
  TTest.Create;
 +
  begin
 +
    Inherited; // Toujours au début des constructeurs et démarre le constructeur (code seulement) de la classe parent
 +
    ...
 +
  end;
 +
</syntaxhighlight>
 +
 +
Constructeur, exemple 2 :<br>
 +
<syntaxhighlight>
 +
  ...
 +
  TTest.Create(...);
 +
  begin
 +
    Inherited Create(...); // Toujours au début des constructeurs et démarre le constructeur (code seulement) de la classe parent
 +
    ...
 +
  end;
 +
  ...
 +
</syntaxhighlight>
 +
 +
Destructeur, exemple 3 :<br>
 +
<syntaxhighlight>
 +
  TTest.Destroy;
 +
  begin
 +
    ...
 +
    Inherited;  // Toujours à la fin des destructeurs et démarre le destructeur (code seulement) de la classe parent
 +
  end;
 +
  ...
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>

Revision as of 23:17, 3 November 2016

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;
  ...