[PDF] ddhc cm2
[PDF] déclaration de tva ca3 exercice corrigé
[PDF] exercice déclaration de tva ca3 avec corrigé
[PDF] décomposer un nombre décimal cm2 leçon
[PDF] sujet droit constitutionnel l1 semestre 1
[PDF] exercice demi-droite graduée sixième
[PDF] activité demi droite graduée 6ème
[PDF] une spéciation chez les palmiers exercice type bac
[PDF] calcul dérivée fonction exponentielle
[PDF] exercice dessin technique corrigé
[PDF] programme detente pour dunker
[PDF] controle 6eme tableau et graphique
[PDF] diagramme de gantt cours
[PDF] eau de javel ph
[PDF] eau de javel danger
[PDF] déclaration de tva ca3 exercice corrigé
[PDF] exercice déclaration de tva ca3 avec corrigé
[PDF] décomposer un nombre décimal cm2 leçon
[PDF] sujet droit constitutionnel l1 semestre 1
[PDF] exercice demi-droite graduée sixième
[PDF] activité demi droite graduée 6ème
[PDF] une spéciation chez les palmiers exercice type bac
[PDF] calcul dérivée fonction exponentielle
[PDF] exercice dessin technique corrigé
[PDF] programme detente pour dunker
[PDF] controle 6eme tableau et graphique
[PDF] diagramme de gantt cours
[PDF] eau de javel ph
[PDF] eau de javel danger
Cours Langage C/C++ - Classes et objets
Programmation Orienté Objet
Thierry Vaira
BTS IRIS Avignon
tvaira@free.fr?v0.1Sommaire
1Classes et objets
2Les objets constants
3Surcharge des opérateurs
4L"héritage
5Les exceptions
6Polymorphisme
7Transtypage
tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 2 / 69Classes et objets
Classes et objets
Les classes sont les éléments de base de laprogrammation orientée objet (POO)en C++. Dans une classe, on réunit : - des données variables : les données memb res,ou les attributsde la classe. - des fonctions :les fonctions memb res,ou les méthodesde la classe.Une classeAapporte un nouveau typeAajouté aux types (pré)définis
de base par C++.Une variableacréée à partir du type de classeAest appeléeinstance (ouobjet) de la classe A.Exemple (non compilable*) : class A; //déclare une classe A (* car elle n "estpas définie )A a1;//instancie un objet a1 de type A
A a2;//crée une instance a2 de type A tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 3 / 69Classes et objets
État et comportement
Une classe sedéclare dans un fichier.h. La déclaration permet de connaître les types des choses constituant la classe, et ainsi de l"utiliser.Une classe sedéfinit dans un fichier.ccou.cpp. La définitionpermettra de fabriquer les choses constituant la classe.Un objet possédera uneidentitéqui permet de distinguer un objet
d"un autre objet (son nom, une adresse mémoire).Un objet possédera unétat(les valeurs contenues dans les attributs
propres à cet objet).Un objet possédera uncomportement(l"utilisation de ses méthodes lui fera changer d"état). tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 4 / 69Classes et objets
Droits d"accès aux membres (1/2)
Les droits d"accès aux membres d"une classe concernent aussi bien les méthodes que les attributs.En C++, on dispose des droits d"accès suivants : - Accèspublic:on p eututiliser le memb rede n"imp orteoù dans le p rogramme. - Accèsprivate:seule une fonction memb rede la mêm eclasse A p eututiliser ce membre; il est invisible de l"extérieur de A. - Accèsprotected:ce memb rep eutêtre utilisé pa run efonction de cette même classe A, et pas ailleurs dans le programme (ressemble donc à private), mais il peut en plus être utilisé par une classe B qui hérite de A.Il existe une règle de POO qui précise queles attributs doivent être encapsulées dans la classepour éviter une utilisation extérieure. C"est une forme de protection permettant d"éviter une utilisation incorrecte ou non prévue par le programmeur de la classe. On appliquera ce principe en déclarant l"ensemble des attributs en private.tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 5 / 69Classes et objets
Droits d"accès aux membres (2/2)
Si c"est nécessaire, l"accès aux attributs privés d"une classe se fera par l"intermédiaire de méthodes nommées desaccesseurs et manipulateurs. On a l"habitude de les nommerget()pour l"accèsen lecture etset()pour l"accès en écriture d"un attribut.Exemple (non compilable car les méthodes ne sont pas définies) :
class A private intx;//je suis un attribut privé de type int voidfoo();//je suis une méthode privée de nom foo public ://seulement des méthodes ici ( reglePOO ) intgetX();//je suis l "accesseurget de x ,je retourne sa valeur voidsetX(int);//je suis le manipulateur set de x ,je fixe sa valeur voidafficher();//je suis une autre méthode publique tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 6 / 69