Difference between revisions of "Inherited/fr"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 6: Line 6:
 
Ce cas est le plus simple :
 
Ce cas est le plus simple :
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
Type   
 
Type   
 
   TMyClass = Class(TComponent)   
 
   TMyClass = Class(TComponent)   
Line 21: Line 21:
 
== Cas des constructeurs et destructeurs ==
 
== Cas des constructeurs et destructeurs ==
 
Constructeur, Exemple 1 :<br>
 
Constructeur, Exemple 1 :<br>
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
   ...
 
   ...
 
   TTest.Create;
 
   TTest.Create;
Line 31: Line 31:
  
 
Constructeur, exemple 2 :<br>
 
Constructeur, exemple 2 :<br>
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
   ...
 
   ...
 
   TTest.Create(...);
 
   TTest.Create(...);
Line 42: Line 42:
  
 
Destructeur, exemple 3 :<br>
 
Destructeur, exemple 3 :<br>
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
   TTest.Destroy;
 
   TTest.Destroy;
 
   begin
 
   begin
Line 50: Line 50:
 
   ...
 
   ...
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 

Latest revision as of 14:13, 17 February 2020

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