Next: Encapsulation et droits d'accès
Up: Classes en C++
Previous: Classes en C++
Tout d'abord le typage du C++, comme du C, repose sur l'équivalence
des noms, pas sur une équivalence structurelle (par exemple,
struct A{int i}
et struct B{int i}
sont deux types
différents).
Dans la suite, une classe sera simplement un type défini par
l'utilisateur. Il y a trois façons de définir un nouveau type en C++ :
class
, struct
et union
. Une classe contient deux sortes
de membres :
-
les données membres qui correspondent à la représentation des objets
-
les fonctions membres de la classe (on parle aussi de
méthodes
Il est important de noter que dans une définition d'une classe, le compilateur
va créer les fonctions de la classe (et uniquement elles), par contre, lors de
la création d'objets, ce sont les données membres qui seront créées. En ce
sens, une fonction membre ne ``coûte'' qu'à la compilation, alors que les
données membres ``coûteront'' à chaque création d'objet. On peut dire aussi que
les données membres sont propres à chaque objets, alors que les fonctions membres
seront partagées par tous les objets.
D'un point de vue pratique, cet absence de ``coût'' pour les fonctions membres,
signifie qu'on aura intérêt à fournir avec une classe toutes les fonctions membres
qui pourraient être utiles même si on n'en
voit pas actuellement l'usage.
Mon Oct 20 14:02:48 MET 1997