Classes héritage
https://www.labri.fr/perso/bourqui/downloads/cours/AP2/support-C%2B%2B-classes.pdf
C++ : PROGRAMMATION-OBJET
Apparue au début des années 70 la programmation orientée objet répond aux nécessités de l'informatique professionnelle. Elle offre aux concepteurs de
La programmation orientée objet (POO) en C++ Première partie
Un programme Orienté Objet est écrit à partir d'un langage Orienté. Objet. Les langages O.O. les plus utilisés sont : C++ C#
Cours Langage C/C++ - Classes et objets Programmation Orienté
Classes et objets. Les classes sont les éléments de base de la programmation orientée objet (POO) en C++. Dans une classe on réunit :.
Programmation orientée objet & autres concepts illustrés en C++ et
Eric Lecolinet - Télécom ParisTech - Programmation orientée objet et autres concepts illustrés en C++11. ? C/C++ : compilé en code machine natif.
La programmation orientée objet (POO) en C++ Quatrième partie
La programmation orientée objet (POO) en C++. Quatrième partie : Héritage et polymorphisme. Thierry Vaira. BTS SN Option IR v.1.1 - 5 octobre 2018
Cours Langage C++ : Héritage et polymorphisme Programmation
Les classes sont les éléments de base de la programmation orientée objet (POO) en C++. Dans une classe on réunit : - des données variables : les données
La programmation orientée objet (POO) en C++ Deuxième partie
statiques car ceux-ci existent même lorsque aucun objet de cette classe n'a été créé. Thierry Vaira (BTS SN-IR Avignon). La POO en C++ (Part. II).
CONTENU DU COURS
d'acquérir les bases de la modélisation et de la programmation orientées objet. Le langage C++ est pris comme exemple. Avertissement : Ce cours suppose la
La programmation orientée objet (POO) en C++ Troisième partie
La programmation orientée objet (POO) en C++. Troisième partie : Les relations entre classes. Thierry Vaira. BTS SN Option IR v.1.2 - 7 décembre 2020
Cours Langage C++ : Héritage et polymorphisme
Programmation Orienté Objet
Thierry Vaira
BTS IRIS Avignon
tvaira@free.fr?v0.1Sommaire
1Classes et objets
2L"héritage
3Polymorphisme
4Classe abstraite
5Transtypage
tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 2 / 37Rappels
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 / 37Rappels
Classifier
Regrouper des objets suivants des critères de ressemblance s"appelleclasser(classifier) :La classe est unedescription abstraite d"un ensemble d"objetstv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 4 / 37
Rappels
État et comportement
Un objet posséde uneidentitéqui permet de distinguer un objet d"unautre objet (son nom, une adresse mémoire).Un objet posséde unétat(les valeurs contenues dans les attributs
propres à cet objet).Un objet posséde uncomportement(l"utilisation de ses méthodes lui fera changer d"état). tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 5 / 37Rappels
Droits d"accès aux membres
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 "importeoù dans le programme. - Accèsprivate:seule une fonction memb rede la même classe A peut utiliser ce membre; il est invisible de l"extérieur de A. - Accèsprotected:ce memb rep eutêtre utilisé pa rune fonction 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. tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 6 / 37L"héritage
Définition
L"héritage(ouspécialisation, oudérivation) permet d"ajouter des propriétés à une classe existante pour en obtenir une nouvelle plus précise.L"idée est : "un Best unAavecdes choses en plus". Exemple : Un étudiantestune personne, et a donc un nom (et un prénom, ...). De plus, il a un numéro INE. tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 7 / 37L"héritage
Personne
est la classe parente ou mère deEtudiant
en anglais superclass classPersonne {
private :stringnom; public :stringgetNom()const{returnnom; }Etudiant
est la classe fille ou dérivée dePersonne
Etudiant
hérite ou descend dePersonne
classEtudiant :
publicPersonne {
private :stringine; public :stringgetINE()const{returnine; }Personne unePersonne; Etudiant unEtudiant;
unePersonne.getNom();//légal : unePersonne est une Personne unEtudiant.getINE();//légal : unEtudiant est un Etudiant unEtudiant.getNom();//légal : unEtudiant est une Personne ( parhéritage ) unePersonne.getINE();//illégal : unePersonne n "estpas un Etudiant ( erreur:" classPersonne
has no member named getINE tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 8 / 37L"héritage
Types d"héritage
Remarque : Les constructeurs, le destructeur, de même que l"opérateur= de la classe de base ne sont pas hérités dans la classe dérivée. tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 9 / 37L"héritage
Conversion automatique (1/2)
Si B hérite de A, alors toutes les instances de B sont aussi des instances de A, et il est donc possible de faire :Personne unePersonne; Etudiant unEtudiant; unePersonne = unEtudiant;//Ok !Propriété
conservée lorsqu on utilise des pointeurs Personne *pUnePersonne; Etudiant *pUnEtudiant = &unEtudiant; pUnePersonne = pUnEtudiant;//pointer sur un B c "estavant tout pointer sur un AÉvidement
l inverse n est pas vrai unEtudiant = unePersonne;//ERREUR !Pareil
pour les pointeurs pUnePersonne = &unePersonne; pUnEtudiant = pUnePersonne;//ERREUR ! pointer sur un A n est pas pointer sur un B tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 10 / 37L"héritage
Conversion automatique (2/2)
Conclusion :Traiter un type dérivé comme s"il était son type de base est appelétranstypage ascendantou surtypage (upcasting). A l"opposé, letranstypage descendant(downcast) pose un problème particulier car leur vérification n"est possible qu"à l"exécution. Il nécessitel"utilisation d"opérateur decast:dynamic_cast(vu plus tard).tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 11 / 37
L"héritage
Principes (1/2)
L"héritage permet :
la réutilisation du code déjà écrit l"ajout de nouvelles fonctionnalités la modification d"un comportement existant (redéfinition) Remarque : la suppression de membres en utilisation l"héritage privé (private).tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 12 / 37L"héritage
Principes (2/2)
Classe
de base classPersonne {
private :stringnom; public stringgetNom()const; voidafficher()const{ cout << nom << endl; }Classe
dérivée classEtudiant :
publicPersonne {
private :stringine; public stringgetINE()const;//ajout de nouvelles fonctionnalités voidafficher()const// modification d "uncomportement existant Personne::afficher();//réutilisation du code déjà écrit cout << ine << endl; tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 13 / 37L"héritage
Notion de redéfinition
Il ne faut pas mélanger la redéfinition et la surdéfinition : Unesurdéfinition ou surcharge (overloading)permetd"utiliser plusieurs méthodes qui portent le même nom au sein d"unemême classe avec une signature différente.Uneredéfinition (overriding)permetde fournir une nouvelle
définition d"une méthode d"une classe ascendante pour la remplacer. Elle doit avoir une signature rigoureusement identiqueà la méthode parente. Un objet garde toujours la capacité de pouvoir redéfinir une méthode afin de la réécrire ou de la compléter. tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 14 / 37L"héritage
Appel de constructeurs (1/2)
Comme une instance de Etudiant (classe dérivée) est avant tout une instance de Personne (classe de base), dans le constructeur dequotesdbs_dbs48.pdfusesText_48[PDF] Origami urgent
[PDF] origin of english language pdf
[PDF] origine agriculture
[PDF] origine alimentaire
[PDF] origine commune des êtres vivants
[PDF] Origine commune svt
[PDF] origine crise de cuba
[PDF] origine d'un séisme
[PDF] Origine de Électricité consommée
[PDF] origine de l économie collaborative
[PDF] origine de l'islam
[PDF] origine de la chaleur de la terre
[PDF] origine de la diversité des êtres humains
[PDF] Origine de la fete des morts au Mexique