Difference between revisions of "Template:Object Types"

From Free Pascal wiki
Jump to navigationJump to search
m
m
 
(5 intermediate revisions by the same user not shown)
Line 19: Line 19:
 
| Yes
 
| Yes
 
|-
 
|-
| Class constrcutor and destrutor
+
| Class constructor and destructor
 
| No
 
| No
 
| Yes
 
| Yes
Line 36: Line 36:
 
| Stack  
 
| Stack  
 
| Heap (Only)
 
| Heap (Only)
 +
|-
 +
|
 +
:Setting fields to zero on allocation
 +
| Managed Types only
 +
| Managed Types only
 +
| Managed Types only
 +
| All fields
 +
|-
 +
|
 +
:Default() function returns a constant with
 +
| all fields zeros
 +
| all fields zeros
 +
| all fields zeros
 +
| returns nil
 
|-
 
|-
 
| Operator overload (global)
 
| Operator overload (global)

Latest revision as of 20:50, 18 February 2021

Feature Record Adv Record Object Class
Encapsulation (combining data and methods + hiding visibility) No Yes Yes Yes
Inheritance No No Yes Yes
Class constructor and destructor No Yes Yes Yes
Polymorphism (virtual methods) No No Yes Yes
Memory allocation Stack Stack Stack Heap (Only)
Setting fields to zero on allocation
Managed Types only Managed Types only Managed Types only All fields
Default() function returns a constant with
all fields zeros all fields zeros all fields zeros returns nil
Operator overload (global) No Yes Yes Yes
Operator overload (in type only) No Yes No No
Type helpers No Yes No Yes
Virtual constructors, class reference No No No Yes
Variant part (case) as c/c++ union Yes Yes No No
Bitpacked (really packing) Yes Yes No No

Modified from https://forum.lazarus.freepascal.org/index.php/topic,30686.30.html (original author: ASerge).