Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
prog:lazarus:classes:creation_class [06/05/2020 17:04] thierry [abstract] |
prog:lazarus:classes:creation_class [17/06/2023 17:11] (Version actuelle) thierry [inline] |
||
|---|---|---|---|
| Ligne 49: | Ligne 49: | ||
| Ceci est également vrai pour les méthodes ''dynamic''.\\ | Ceci est également vrai pour les méthodes ''dynamic''.\\ | ||
| Cependant, vous ne pouvez pas remplacer une méthode si elle n'est pas ''virtual'' ou ''dynamic''. | Cependant, vous ne pouvez pas remplacer une méthode si elle n'est pas ''virtual'' ou ''dynamic''. | ||
| + | |||
| + | ''override'' peut résoudre l'erreur suivante : | ||
| + | <note warning>Warning: An inherited method is hidden by "xxxxx;"</note> | ||
| + | Mais si aprés avoir mis ''override'' on obtient a nouveau l'erreur : | ||
| + | <note warning>Error: There is no method in an ancestor class to be overridden: "xxxxx;"</note> | ||
| + | Il faut essayer ''reintroduce'' | ||
| === abstract === | === abstract === | ||
| Une méthode ''abstract'' est déclarée, mais non implémentée dans la classe de base. | Une méthode ''abstract'' est déclarée, mais non implémentée dans la classe de base. | ||
| - | Seule les classes ''virtual'' peuvent etre ''abstract''. | + | Seule les membres ''virtual'' peuvent être ''abstract''. |
| <code delphi> | <code delphi> | ||
| procedure test; virtual; abstract; | procedure test; virtual; abstract; | ||
| Ligne 98: | Ligne 104: | ||
| end; | end; | ||
| </code> | </code> | ||
| + | === stdcall === | ||
| + | <note>ToDo</note> | ||
| + | === inline === | ||
| + | |||
| + | Le mot réservé inline permet au compilateur de copier une fonction ou une procédure à la place de son appel. | ||
| + | |||
| + | Si la fonction ou la procédure inline est utilisée fréquemment, cela augmente la vitesse du programme puisque le programme n'a pas besoin de passer à la sous-routine. | ||
| + | |||
| + | L'utilisation des fonctions et procédures inline est désactivée par défaut. Le commutateur du compilateur -Si ou {$inline on} active l'utilisation des fonctions et procédures inline. | ||
| + | |||
| + | |||
| + | inline est une indication du compilateur et le compilateur peut l'ignorer.\\ | ||
| + | Si le compilateur vous avertit qu'il n'a pas mis en ligne une certaine partie de code marquée comme inline, vous devez supprimer la directive inline.\\ | ||
| + | Il ne s'agit pas d'un bogue. Il s'agit de la complexité du code | ||
| + | |||
| + | === Absolute === | ||
| + | Source : [[https://wiki.freepascal.org/Absolute]] | ||
| + | Le modificateur ''absolute'' entraîne le stockage d'une variable au même emplacement de mémoire qu'une autre variable. | ||
| + | |||
| + | |||
| + | ===== Voir aussi ===== | ||
| + | * [[prog:lazarus:classes:manip_class]] | ||
| ===== Sources et Ressources ===== | ===== Sources et Ressources ===== | ||
| * [[https://wiki.freepascal.org/Class]] | * [[https://wiki.freepascal.org/Class]] | ||