next up previous contents index
Next: Extension ``verticale'' du code Up: Panoramique et comparaison de Previous: Liaison tardive et dynamique

Caractéristiques des classes

Ces langages se distinguent aussi pour la gestion des classes; voici quelques points de repère.

variables de classe
il est des fois pratique de pouvoir partager au niveau de la classe des informations qui seraient identiques dans toutes les instances. Cela est fait de façon transparente, par le compilateur, pour les méthodes, qui ne sont pas répliqués à chaque instance, mais cela peut servir aussi si l'on veut garder la version de la classe.
C++ et Java fournissent cela explicitement, à l'aide du qualificateur static que l'on peut préfixer aux déclarations de variables d'instance.
Objective-C n'a pas de support explicite pour cela, mais toute variable static déclarée dans le même fichier où on a declaré une classe se conduit comme variable de classe.
méthodes de classe
il s'agit de méthodes qui peuvent travailler seulement sur les variables de classe (dans le cas de C++ et Java, declarés avec static), ou de methodes de l'objet classe dans le cas de Objective-C, déclarés avec un + plutôt qu'un -.
objets classes/containement
Certains langages prévoient que toute classe soit représentée à run-time par un objet classe , et en général on peut ensuite demander à un objet quelle est sa classe. Objective-C et Java disposent de la notion d'objet classe, mais non C++, qui élimine pendant la compilation presque toute information de type.
Cela permet un certain niveau d'object introspection .



Roberto DiCosmo
Mon Jun 3 18:29:31 MET DST 1996