Chapitre POO Cpp M Belmokhtar .pdf



Nom original: Chapitre_POO_Cpp_M_Belmokhtar.pdf

Ce document au format PDF 1.3 a été généré par PowerPoint / Mac OS X 10.9.5 Quartz PDFContext, et a été envoyé sur fichier-pdf.fr le 18/11/2014 à 15:38, depuis l'adresse IP 41.250.x.x. La présente page de téléchargement du fichier a été vue 848 fois.
Taille du document: 8.5 Mo (34 pages).
Confidentialité: fichier public


Aperçu du document


Module : La Programmation Orientée Objet & C++
M. Ouadï Belmokhtar
ouadi.belmokhtar@gmail.com

§  La programmation Orientée Objet (POO) est un
paradigme (style) de programmation informatique
élaboré par deux informaticiens Norvégiens au début
des années 1960.
§  Le premier langage orienté objet était Simula, créait
en 1962 par les deux fondateurs de la POO.
§  Exemples de langages orientés objets:
C++, Java, C#, Visual Basic, PHP, Delphi, Python.

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

2  

§  La méthode orientée objet est une technique qui
permet de simplifier l'organisation du code dans
nos programmes et de rendre facilement certains
morceaux de codes réutilisables.
§  La méthode orientée objet permet de concevoir une
application sous la forme d'un ensemble d'objets
reliés entre eux par des relations.
§  L'une des caractéristiques de cette méthode, c’est
qu’elle permet de concevoir de nouveaux objets à
partir d'objets existants.
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

3  

§  On peut donc réutiliser les objets dans plusieurs applications.
§  La réutilisation du code fut un argument déterminant pour
venter les avantages des langages à objets.

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

4  

§  Pour faire la programmation orientée objet il
faut connaître les 4 concepts suivants:
① 
② 
③ 
④ 

Objet et classe
Héritage
Encapsulation (Accessibilité)
Polymorphisme

 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

5  

①  Objet et Classe

②  Héritage
③  Encapsulation (Accessibilité)
④  Polymorphisme

 

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

6  

§  Un objet représente un concept ou toute entité du monde physique, comme:
§  Une voiture
§  Une personne
§  Une figure (cercle, rectangle, ...)
§  Un objet est une structure informatique définie par un état et un comportement
§  Objet = état + comportement
§  L’état regroupe les valeurs instantanées de tous les attributs de l’objet.
§  Le comportement regroupe toutes les compétences et décrit les actions et
les réactions de l’objet. Autrement dit le comportement est défini par les
opérations (méthodes) que l’objet peut effectuer.
§  L’état d’un objet peut changer dans le temps.
§  Généralement, c’est le comportement qui modifie l’état de l’objet.
§  Pour désigner un objet on dit aussi une instance.
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

7  

§  Exemple:

v1 : Voiture
: Fenetre
couleur = “Rouge”
titre = “MS Word”
État de l’objet
carburant = “Diesel”
largeur = 300
puissance = 8chv
hauteur = 400
demarrer()
deplacer()
accelerer()
Comportement
agrandir()
freiner()
fermer()


Objet = État + Comportement
 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

8  

§  En plus de son état, un objet possède une identité qui
caractérise son existence propre.
§  Cette identité s’appelle également référence ou
handle de l’objet
§  En terme informatique de bas niveau, l’identité d’un
objet représente son adresse mémoire.
§  Deux objets ne peuvent pas avoir la même identité:
c’est-à-dire que deux objet ne peuvent pas avoir le
même emplacement mémoire.
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

9  

§  Un objet est identifié par:

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

10  

§  Dans un programme informatique, un objet peut passer par les
étapes suivantes:

•  Instanciation via le
constructeur  
•  Opérateur new

Utilisation  
•  Changement d’état par
affectation.  
•  Comportements par
exécution de
méthode.  

Construction
(en mémoire)

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

•  Opérateur delete
•  Destruction via le
destructeur  
•  Après la destruction,
l’objet n’existe plus en
mémoire  

Destruction  

11  

① 
② 
③ 
④ 

Objet et Classe
Héritage
Encapsulation (Accessibilité)
Polymorphisme

 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

12  

C’est quoi une Classe en P.O.O:
§  Une classe en C++ est le prolongement des
structures en langage C
Rappel : Structure en langage C
 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

13  

§  Une structure est un regroupement de variables différentes
sous le même nom.
§  Syntaxe:






§  Tous les membres (fonctions et données) sont publics;
§  Une structure ne peut jamais être dérivée;

 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

14  

§  Les objets qui ont des caractéristiques communes sont
regroupés dans une entité appelée classe.
§  La classe décrit le domaine de définition d’un ensemble
d’objets.
§  Chaque objet appartient à une classe.
§  Les généralités sont contenues dans les classes et les
particularités dans les objets.
§  Les objets informatique sont construits à partir de leur classe
par un processus qui s’appelle l’instanciation.
§  Tout objet est une instance d’une classe.
§  Une classe représente aussi un type structuré de données.
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

15  

 
Quest ce que signifie “objets d’une classe”:
Voiture
marque
couleur
carburant
puissance
demarrer()
accelerer()
freiner()

v1 : Voiture

Une Classe

marque = “Jaguar”
couleur = “Noire”
carburant = “GAZ”
puissance = “2 ch”
demarrer()
accelerer()
freiner()

Plusieurs objets

v2 : Voiture

v3 : Voiture
marque = “Rolls-Royce”
couleur = “Blanche”
carburant = “Essence”
puissance = “300 ch”
demarrer()
accelerer()
freiner()

marque = “MaQueen”
couleur = “Rouge”
carburant = “Piles”
puissance = “0.5 ch”
demarrer()
accelerer()
freiner()
16  

§ 

§ 

§ 

§ 

Une classe est définit par:
o  Les attributs (en C++ on dit membre)
o  Les méthodes (en C++ on dit fonction membre)
Les membres permettent de décrire l’état des objets de cette classe.
o  Chaque membre est défini par:
•  Son nom
•  Son type
•  Éventuellement sa valeur initiale
Les fonctions membres permettent de décrire le comportement des objets de cette classe.
o  Une fonction membre représente une procédure ou une fonction qui s’applique sur une
instance de la classe et qui permet d’exécuter un certain nombre d’instructions.
Parmi les fonctions membres d’une classe, existe deux fonctions particulières:
o  Une fonction qui est appelée au moment de la création d’un objet de cette classe. Cette
fonction est appelée CONSTRUCTEUR.
o  Une fonction qui est appelée au moment de la destruction d’un objet. Cette fonction
s’appelle le DESTRUCTEUR .

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

17  

Représentation UML d’une classe
§  Une classe est représenté par un rectangle à 3 compartiments:
o  Un compartiment qui contient le nom de la classe
o  Un compartiment qui contient la déclaration des attributs
(membres)
o  Un compartiment qui contient les méthodes (fonctions membres)
§  Exemples:
Compte

Nom de la classe

code : int
solde : float

Attributs, variables d’instance
Ou membres de la classe

Compte (float soldeInitial)
verser (float mt) : void
retirer (float mt) : void
getSolde () : float

Méthodes ou fonctions membres

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

18  

Création d’une classe :
§  La création d’une classe en C++ se fait en deux
étapes:
①  Déclaration :
Déclaration de la classe dans un fichier entête.
NomClasse.hpp

②  Définition :
Définition ou implémentation de la classe dans
un fichier source
 

NomClasse.cpp

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

19  

Syntaxe de création d’une classe :
①  Déclaration :
NomClasse.hpp

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

②  Définition :
NomClasse.cpp

20  

§  En fait, une caractéristique de la POO est de maîtriser la création d’objet, leur
initialisation et leur destruction. C++ répond à ce besoin avec la notion de constructeur
d’objet pour la création et l’initialisation et avec la notion de destructeur.
Constructeur :
§  Un constructeur d’objet est une fonction membre particulière d’une classe qui est
appelée lors de la création d’un objet, quel qu’il soit. Son but est :
–  d’allouer un emplacement mémoire pour l’objet,
–  d’initialiser les membres de l’objet avec de bonnes valeurs de départ
–  de retourner l’adresse de l’emplacement mémoire choisi.

Destructeur :
§  Le destructeur est une fonction membre systématiquement exécutée (si elle existe !) «à
la fin de la vie » d’un objet, il permet de:
–  remettre l’objet dans un état terminal
–  libérer l’emplacement mémoire associé à l’objet.

• 
• 

On ne peut pas passer de paramètres au destructeur.
Si on ne définit pas de destructeur, il en existe un par défaut implicitement crée par le
compilateur, non visible dans le code, qui assure la même fonction de libération de la
mémoire.

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

21  

Exemples:
Compte.hpp

Compte.cpp

N.B:
§  Le constructeur et le destructeur n’ont pas un type de retour;
§  Le constructeur et le destructeur doivent avoir le même nom que la classe
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

22  

§  Dans C++, il existe 4 niveaux de protection :
§  private (-) :  Un membre privé d’une classe n’est
accessible qu’à l’intérieur de cette classe.
§  protected (#) :  un membre protégé d’une classe est
accessible à :
•  L’intérieur de cette classe
•  Aux classes dérivées de cette classe.

§  public (+) : accès à partir de toute entité interne ou
externe à la classe
§  Autorisation par défaut : dans C++, en
l’absence des trois autorisations précédentes,
l’autorisation par défaut est private.
 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

23  

Instanciation d’une classe :
§  Instancier une classe c’est créer un objet ayant pour modèle la classe
concernée.
§  En C++, pour créer un objet d’une classe, on utilise l’opérateur new suivie
du constructeur de la classe.
§  Syntaxe:
§  L’opérateur new fait trois actions:
① 
② 
③ 

appelle le constructeur de la classe;
crée un objet dans l’espace mémoire;
retourne l’adresse mémoire de celui-ci;

§  Cette adresse mémoire devrait être affectée à une variable (pointeur) qui
représente l’identité de l’objet. Cette référence est appelée handle.
Appel de méthodes:
 
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

24  

Exécution du programme:
§  La méthode main() est le point d’entré d’un programme C++.
§  Créer la classe NomApplication.cpp avec le code suivant:

 

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

25  

§  Récapilutaif des concepts d’une classe:
 

26  

Exercice d’application:
§ 

 

Ecrivez le programme de création de la classe Compte:
§  Créez le fichier header de déclaration Compte.hpp
§  Créez le fichier de définition Compte.cpp
§  Créez la classe ApplicationCompte.cpp pour exécuter le
programme.
§  Instanciez deux objets compte1 et compte2.
§  Versez et retirez des montants.
Compte
§  Consultez le solde.
code : int
solde : float
Compte()
Compte (float soldeInitial)
~Compte()
verser (float mt) : void
retirer (float mt) : void
getSolde () : float

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

27  

 

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

28  

Solution de l’exercice:
 

Résultat de l’exécution:

c1 : Compte
code = 1
solde = 5000
verser (float mt)
retirer (float mt)
getSolde ()
c2 : Compte

Représentation
Mémoire

code = 2
solde = 7000
verser (float mt)
retirer (float mt)
getSolde ()

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

29  

Comparaison
de la syntaxe :
 

•  Utilisation du mot clé struct
•  Tous les membres sont public
•  Ne peut pas étre dérivée
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

•  Utilisation du mot clé class
•  Des membres private et autres public
•  Peut être dérivée
30  

Les conepts de la P.O.O:
 

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

31  

La notion d’objet:
 

Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

32  

La notion de classe:
 

33  

Compte* c1 = new Compte()
c1->method();

Class X {
...
};
Division du talbeau
Chapitre  2  :  Programma0on  Orientée  Objet  en  C++    

34  


Aperçu du document Chapitre_POO_Cpp_M_Belmokhtar.pdf - page 1/34
 
Chapitre_POO_Cpp_M_Belmokhtar.pdf - page 2/34
Chapitre_POO_Cpp_M_Belmokhtar.pdf - page 3/34
Chapitre_POO_Cpp_M_Belmokhtar.pdf - page 4/34
Chapitre_POO_Cpp_M_Belmokhtar.pdf - page 5/34
Chapitre_POO_Cpp_M_Belmokhtar.pdf - page 6/34
 




Télécharger le fichier (PDF)


Chapitre_POO_Cpp_M_Belmokhtar.pdf (PDF, 8.5 Mo)

Télécharger
Formats alternatifs: ZIP



Documents similaires


apprentissage du java
346 new
chap2 c
chapitre poo cpp m belmokhtar
c polycop2
cours cppc

Sur le même sujet..