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. | ||
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]] |