Difference between revisions of "Template:Object Types"

From Lazarus wiki
Jump to navigationJump to search
m
m
Line 37: Line 37:
 
| Heap (Only)
 
| Heap (Only)
 
|-
 
|-
| :Setting fields to zero on allocation
+
|
 +
:Setting fields to zero on allocation
 +
| Managed Types only
 
| Managed Types only
 
| Managed Types only
 
| Managed Types only
 
| Managed Types only
| ?
 
 
| All fields
 
| All fields
 
|-
 
|-

Revision as of 20:47, 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
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).