Sign in Join
Wiki copytemporary

Object/fr: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Object/fr

OldNewLine
1+Le [[Reserved words/fr|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 [[Class|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 [[Heap/fr|tas]]. Toutefois, les Objects peuvent être créés sur le tas en utilisant la procédure [[New/fr|New]]. Les Objects ont été introduits dans [[Turbo Pascal/fr|Turbo Pascal]] alors que les Classes ont été introduites dans [[Delphi/fr|Delphi]]. Les Objects sont conservés pour assurer la compatibilité descendante et sont largement surpassés par les Classes.
2+
3+Exemple de squelette de création de type de données Object :
4+
5+``` pascal
6+type
7+ TTest = object
8+ private
9+ { private declarations }
10+ public
11+ { public declarations }
12+ end;
13+```
14+
15+Exemple de squelette de création de type de données Object compacté :
16+
17+``` pascal
18+type
19+ TTest = packed object
20+ private
21+ { private declarations }
22+ public
23+ { public declarations }
24+ end;
25+```
26+
27+Exemple avec constructeur et destructeur:
28+
29+``` pascal
30+type
31+ TTest = object
32+ private
33+ {private declarations}
34+ total_errors : Integer;
35+ public
36+ {public declarations}
37+ constructor Init;
38+ destructor Done;
39+ procedure IncrementErrors;
40+ function GetTotalErrors : Integer;
41+ end;
42+
43+procedure TTest.IncrementErrors;
44+begin
45+ Inc(total_errors);
46+end;
47+
48+function TTest.GetTotalErrors : Integer;
49+begin
50+ GetTotalErrors := total_errors;
51+end;
52+
53+constructor TTest.Init;
54+begin
55+ total_errors := 0;
56+end;
57+
58+destructor TTest.Done;
59+begin
60+ WriteLn('Destructor not needed - nothing allocated on the heap');
61+end;
62+
63+var
64+ error_counter: TTest;
65+
66+begin
67+ error_counter.Init; // unlike C++, constructors must be explicitly called
68+ error_counter.IncrementErrors;
69+ error_counter.IncrementErrors;
70+ WriteLn('current errors:', error_counter.GetTotalErrors);
71+ error_counter.Done
72+end.
73+```
74+
75+**Sortie:**\
76+current errors:2\
77+Destructor not needed - nothing allocated on the heap
78+
79+## Voir aussi
80+
81+[[Programming Using Objects/fr|Programmation utilisant des Objects]]
82+
83+---
84+*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](/wiki-contact).*

Back to history