Sign in Join
Wiki copytemporary

Object/fr

Deutsch · English · Français

Le mot réservé object est utilisé pour construire des types de donnée complexes contenant à la fois des données et des routines. Les Object permettent à l'utilisateur de faire de la programmation objet (POO). Cela ressemble à la classe dans les types que l'on peut créer mais par défaut les Object sont créés sur la pile alors que les objets (instances de classe) sont créés sur le tas. Toutefois, les Objects peuvent être créés sur le tas en utilisant la procédure New. Les Objects ont été introduits dans Turbo Pascal alors que les Classes ont été introduites dans Delphi. Les Objects sont conservés pour assurer la compatibilité descendante et sont largement surpassés par les Classes.

Exemple de squelette de création de type de données Object :

pascal
type
  TTest = object
  private
    { private declarations }
  public
    { public declarations }
  end;

Exemple de squelette de création de type de données Object compacté :

pascal
type
  TTest = packed object
  private
    { private declarations }
  public
    { public declarations }
  end;

Exemple avec constructeur et destructeur:

pascal
type
   TTest = object
   private 
     {private declarations}
     total_errors : Integer;
   public
     {public declarations}
     constructor Init;
     destructor Done;
     procedure IncrementErrors;
     function GetTotalErrors : Integer;
   end;

procedure TTest.IncrementErrors;
begin
  Inc(total_errors);
end;
    
function TTest.GetTotalErrors : Integer;
begin
   GetTotalErrors := total_errors;
end;

constructor TTest.Init;
begin
  total_errors := 0;
end;

destructor TTest.Done;
begin
   WriteLn('Destructor not needed - nothing allocated on the heap');
end;

var
   error_counter: TTest;

begin
   error_counter.Init; // unlike C++, constructors must be explicitly called
   error_counter.IncrementErrors;
   error_counter.IncrementErrors;
   WriteLn('current errors:', error_counter.GetTotalErrors);
   error_counter.Done
end.

Sortie:
current errors:2
Destructor not needed - nothing allocated on the heap

Voir aussi

Programmation utilisant des Objects


From the Free Pascal wiki, page "Object/fr", as it stood on 2020-02-21 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.