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





Previous PDF Next PDF



C++ : LES BASES

Apparu au début des années 90 le langage C++ est actuellement l'un des plus Le but de ce cours est de présenter la syntaxe de base du langage C++.



Cours de C++

2 ????. 2005 ?. ? Programme: . . . s'adresse `a une machine ! Page 5. Introduction. Le langage C++.



C++ Master 1 IM

Une introduction au langage C++ ainsi qu'au paradigme objet. Comme dans la plupart des cours de programmation on commence.



Programmation C++ (débutant)/Notions de base

Programmation C++ (débutant)/Notions de base. Le cours du chapitre 1 : Notions de base. Les langages de programmation. Le C++ est un langage de 



Apprendre le C++.pdf

Cours et exercices en UML 2 avec PHP Java



La programmation en C++ moderne

6 ???. 2021 ?. VI.1. Index. 615. Bienvenue dans ce cours sur l'apprentissage de la programmation avec le langage C++. Vous débutez complètement et n'avez ...



Comprendre et utiliser C++ pour programmer objets

Cours rédigé et enseigné par un professeur francophone. base du langage C++ (types élémentaires schémas itératifs et conditionnels



Cours Langage C++ : Héritage et polymorphisme Programmation

Cours Langage C++ : Héritage et polymorphisme. Programmation Orienté Objet. Thierry Vaira. BTS IRIS Avignon tvaira@free.fr.



COURS PROGRAMMATION C++ TAHRAOUI Souad Chlef za3

Le langage C++ est un des langages les plus célèbres au monde. Très utilisé notamment dans le secteur des jeux vidéo qui apprécie ses performances et ses 



Cours Langage C/C++ Mémoire et allocation dynamique

Cours Langage C/C++ Les fonctions malloc et free ainsi que les opérateurs du langage. C++ new et delete permettent



The C++ Language Tutorial - C++ Users

cplusplus com C++ Language Tutorial Written by: Juan Soulié Last revision: June 2007 Available online at: http://www cplusplus com/doc/tutorial/ The online version



Searches related to langage c+ cours pdf PDF

Chapter 1 Introduction This textbook was written with two primary objectives The ?rst is to introduce the C program-ming language C is a practical and still-current software tool; it remains one of the most popular

Qui a inventé le langage C ?

Mais ses qualités opérationnelles l’ont très vite fait adopter par une large communauté de programmeurs. Une première définition de ce langage est apparue en 1978 avec l’ouvrage de Kernighan et Ritchie The C programming language.

Quelle est la valeur entière autorisée par le langage C ?

A priori, c’est le seul cas autorisé par le langage C (du moins, tant que l’on ne procède pas à des conversions explicites). Une exception a toutefois lieu en ce qui concerne la valeur entière 0, ainsi que pour le type générique void * dont nous parlerons un peu plus loin.

Comment interpréter une instruction en C ?

Elle sera interprétée comme : k = (i = 5) Autrement dit, elle affectera à i la valeur 5 puis elle affectera à k la valeur de l’expression i = 5, c’est-à-dire 5. En fait, en C, les notions d’expression et d’instruction sont étroitement liées puisque la principale instruction de ce langage est une expression terminée par un point-virgule.

Quels sont les conséquences d’un code de format en désaccord avec le type de l’expression ?

a) code de format en désaccord avec le type de l’expression Lorsque le code de format, bien qu’erroné, correspond à une information de même taille (c’est-à-dire occupant la même place en mémoire) que celle relative au type de l’expression, les conséquences de l’erreur se limitent à une mauvaise interprétation de l’expression.

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

quotesdbs_dbs13.pdfusesText_19
[PDF] apprendre le latin livre

[PDF] apprendre latin autodidacte

[PDF] aprender latin pdf

[PDF] cours de francais pour etranger bordeaux gratuit

[PDF] cours de francais pour etranger metz

[PDF] cours de français gratuit vaud

[PDF] alliance francaise bordeaux aquitaine

[PDF] cours de français pour étrangers metz

[PDF] cours de français lausanne pas cher

[PDF] association cours de français bordeaux

[PDF] cours de français gratuit lausanne

[PDF] cours de grec biblique pdf

[PDF] initiation au grec du nouveau testament pdf

[PDF] apprendre grec facilement

[PDF] manuel de grec biblique