[PDF] Cours Langage C++ : Héritage et polymorphisme Programmation





Previous PDF Next PDF



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.1

Sommaire

1Classes et objets

2L"héritage

3Polymorphisme

4Classe abstraite

5Transtypage

tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 2 / 37

Rappels

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 / 37

Rappels

Classifier

Regrouper des objets suivants des critères de ressemblance s"appelle

classer(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"un

autre 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 / 37

Rappels

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 / 37

L"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 / 37

L"héritage

Personne

est la classe parente ou mère de

Etudiant

en anglais superclass class

Personne {

private :stringnom; public :stringgetNom()const{returnnom; }

Etudiant

est la classe fille ou dérivée de

Personne

Etudiant

hérite ou descend de

Personne

class

Etudiant :

public

Personne {

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:" class

Personne

has no member named getINE tv (BTS IRIS Avignon)Cours C/C++tvaira@free.fr?v0.1 8 / 37

L"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 / 37

L"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 / 37

L"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écessite

l"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 / 37

L"héritage

Principes (2/2)

Classe

de base class

Personne {

private :stringnom; public stringgetNom()const; voidafficher()const{ cout << nom << endl; }

Classe

dérivée class

Etudiant :

public

Personne {

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 / 37

L"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"une

mê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 / 37

L"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] orientez moi svp !

[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