Object/fr
│
Deutsch (de) │
English (en) │
français (fr) │
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 :
type
TTest = object
private
{ private declarations }
public
{ public declarations }
end;
Exemple de squelette de création de type de données Object compacté :
type
TTest = packed object
private
{ private declarations }
public
{ public declarations }
end;
Exemple avec constructeur et destructeur:
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