« Programmation C++/Les classes » : différence entre les versions

Contenu supprimé Contenu ajouté
(ce que fait la classe et sa sémantique précise) Indépendant de (la manière dont on l'implémente)
→‎Destructeurs : restructuration , correction maladresses et confusion classe/instance (dernier §)
Ligne 77 :
** explicit A(const T &); ''// constructeur à un argument
 
=== DestructeursDestructeur ===
 
LesLe destructeursdestructeur sontd'une appelésclasse est appelé lorsqu'une instancede d'uneses classeinstances doit être détruite. Cela arrive à la fin de l'exécution d'une fonction/méthode lors d'une allocation dynamique : si vous avez déclaré, localement à une fonction/méthode, un élément d'une classe A par ''A toto;'' alors à la fin de l'exécution de la fonction/méthode, le destructeur de la classe est appelé automatiquement. Il est également appelé lorsqu'on détruit une instance grâce àavec <code>delete</code>. Il ne peut y avoir qu'un seul destructeur pour une même classe. S'il n'est pas explicitement présent dans la classe, il sera généré par le compilateur. La syntaxe est identique à celle du constructeur, mais le destructeur est introduit par un tilde:
 
Il ne peut y avoir qu'un seul destructeur pour une même classe. S'il n'est pas explicitement présent dans la classe, il sera généré par le compilateur. La syntaxe est similaire à celle du constructeur, à ceci près que le destructeur est introduit par un tilde et qu'il ne reçoit aucun argument :
 
<code>~A();</code>
 
LeUn destructeurappel neexplicite reçoitavec aucun argument. Il<code>delete</code> est utilenécessaire lorsquelorsqu'une parinstance exemple,a uneété classeallouée Véhiculeavec a<code>new</code>. unDans pointeurle surcas unecontraire, classesi Moteur.le Si la classepointeur est détruitedétruit sans appeler unle destructeur, la classe moteurl'instance ne sera pas réellement supprimée et ilpersistera yen auramémoire unemais fuitesans deêtre mémoireaccessible, lace classequi Moteuroccasionnera restantce enqu'on mémoireappelle maisune étantfuite inaccessiblede mémoire.
 
== Exemples de classes ==