Difference between revisions of "Template:Object Types"
From Free Pascal wiki
Jump to navigationJump to searchm |
m |
||
(2 intermediate revisions by the same user not shown) | |||
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 | ||
+ | |- | ||
+ | | | ||
+ | :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) |
|
Managed Types only | Managed Types only | Managed Types only | All fields |
|
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).