SlideShare a Scribd company logo
1 of 9
Download to read offline
01/10/2011




     Université Moulay Ismail
  Faculté des Sciences – Meknes
Département de Mathématiques &                          Licence SMIA
           Informatique                                  Module POO
                                                 Année universitaire 2011/2012



      Programmation Orientée Objet
                 C++
                              A. EL FERGOUGUI
                          elfergougui@fs-umi.ac.ma




                                    plan




 Généralités sur le POO            A. EL FERGOUGUI                        2




                                                                                         1
01/10/2011




        Généralités sur la programmation
              orientée objet: POO
• Problématique de la programmation
• La programmation structurée
• Les apports de la programmation orientée
  objet
• P.O.O., langages de programmation et C++
• C++ et la programmation structurée
• C++ et la programmation orientée objet

Généralités sur le POO          A. EL FERGOUGUI                            3




    Problématique de la programmation
Critères de mesurer la qualité d’un logiciel:
• l’exactitude : aptitude d’un logiciel à fournir les résultats voulus, dans
    des conditions normales d’utilisation (par exemple, données
    correspondant aux spécifications) ;
• la robustesse : aptitude à bien réagir lorsque l’on s’écarte des
    conditions normales d’utilisation ;
• l’extensibilité : facilité avec laquelle un programme pourra être
    adapté pour satisfaire à une évolution des spécifications ;
• la réutilisabilité : possibilité d’utiliser certaines parties (modules) du
    logiciel pour résoudre un autre problème ;
• la portabilité : facilité avec laquelle on peut exploiter un même
    logiciel dans différentes implémentations ;
• l’efficience : temps d’exécution, taille mémoire...



Généralités sur le POO          A. EL FERGOUGUI                            4




                                                                                       2
01/10/2011




             La programmation structurée
  • En programmation structurée, un programme
    est formé de la réunion de différentes
    procédures et de différentes structures de
    données, généralement indépendantes de ces
    procédures !!!.

Programmes = algorithmes + structures de données


  Généralités sur le POO   A. EL FERGOUGUI           5




           Les apports de la programmation
                    orientée objet
  • Objet:
  C’est là qu’intervient la programmation orientée
    objet (en abrégé P.O.O), fondée justement sur
    le concept d’objet, à savoir une association
    des données et des procédures (qu’on appelle
    alors méthodes) agissant sur ces données
      Méthodes + Données = Objet


  Généralités sur le POO   A. EL FERGOUGUI           6




                                                                 3
01/10/2011




         Les apports de la programmation
                  orientée objet
• Encapsulation
L’encapsulation des données, signifie qu’il n’est
   pas possible d’agir directement sur les
   données d’un objet ; il est nécessaire de
   passer par l’intermédiaire de ses méthodes,
   qui jouent ainsi le rôle d’interface obligatoire.
   On traduit parfois cela en disant que l’appel
   d’une méthode est en fait l’envoi d’un «
   message » à l’objet.

Généralités sur le POO   A. EL FERGOUGUI               7




         Les apports de la programmation
                  orientée objet
• Classe
En P.O.O. apparaît généralement le concept de
  classe, qui correspond simplement à la
  généralisation de la notion de type que l’on
  rencontre dans les langages classiques. En effet,
  une classe n’est rien d’autre que la description
  d’un ensemble d’objets ayant une structure de
  données commune et disposant des mêmes
  méthodes. Les objets apparaissent alors comme
  des variables d’un tel type classe (on dit aussi
  qu’un objet est une « instance » de sa classe).

Généralités sur le POO   A. EL FERGOUGUI               8




                                                                   4
01/10/2011




         Les apports de la programmation
                  orientée objet
Héritage:
Un autre concept important en P.O.O. est celui
  d’héritage. Il permet de définir une nouvelle
  classe à partir d’une classe existante, à laquelle
  on ajoute de nouvelles données et de nouvelles
  méthodes.
• La conception de la nouvelle classe, qui « hérite »
  des propriétés et des aptitudes de l’ancienne,
  peut ainsi s’appuyer sur des réalisations
  antérieures parfaitement au point et les «
  spécialiser » à volonté.

Généralités sur le POO   A. EL FERGOUGUI                9




         Les apports de la programmation
                  orientée objet
Polymorphisme:
• Généralement, en P.O.O, une classe dérivée peut
  « redéfinir » (c’est-à-dire modifier) certaines des
  méthodes héritées de sa classe de base.
• Cette possibilité est la clé de ce que l’on nomme
  le polymorphisme, c’est-à-dire la possibilité de
  traiter de la même manière des objets de types
  différents, pour peu qu’ils soient tous de classes
  dérivées de la même classe de base.


Généralités sur le POO   A. EL FERGOUGUI                10




                                                                     5
01/10/2011




  P.O.O., langages de programmation et
                   C++
• certains langages peuvent être conçus pour
  appliquer à la lettre ces principes et réaliser ce
  que nous nommons de la P.O.O. « pure ».
  C’est par exemple le cas de Simula, Smalltalk
  ou, plus récemment, Eiffel ou Java.
• C++= C + POO




Généralités sur le POO   A. EL FERGOUGUI           11




    C++ et la programmation structurée
• Les possibilités de programmation structurée
  de C++ sont en fait celles du langage C
• C++ c’est du C + d’autres enrichissements
• Plus de type; plus de structuration, opérateurs
  … etc




Généralités sur le POO   A. EL FERGOUGUI           12




                                                                6
01/10/2011




       C++ et la programmation orientée
                      objet
• Les possibilités de P.O.O. représentent bien sûr
  l’essentiel de l’apport de C++ au langage C.
• C++ dispose de la notion de classe qui comporte:
    – la description d’une structure de données ;
    – des méthodes.
• Sur le plan du vocabulaire, C++ utilise des termes qui
  lui sont propres. On parle en effet de :
    – « membres données » pour désigner les différents
      membres de la structure de données associée à une
      classe ;
    – « fonctions membres » pour désigner les méthodes

Généralités sur le POO   A. EL FERGOUGUI                   13




       C++ et la programmation orientée
          objet: Instanciation d’objets
• À partir d’une classe, on pourra « instancier » des
   objets (nous dirons aussi créer des objets) de deux
   façons différentes :
• soit par des déclarations usuelles, les emplacements
   étant alors gérés automatiquement sous forme de ce
   que l’on nomme une « pile » ;
• soit par allocation dynamique dans ce que l’on
   nomme un « tas », les emplacements étant alors
   gérés par le programmeur lui-même.

Généralités sur le POO   A. EL FERGOUGUI                   14




                                                                        7
01/10/2011




      C++ et la programmation orientée
      objet: le constructeur/destructeur
• Comme la plupart des langages objets, C++ permet de
  définir ce que l’on nomme des « constructeurs » de
  classe. Un constructeur est une fonction membre
  particulière qui est exécutée au moment de la création
  d’un objet de la classe.
• Le constructeur peut notamment prendre en charge
  l’initialisation d’un objet, au sens le plus large du
  terme.
• De manière similaire, une classe peut disposer d’un «
  destructeur », fonction membre exécutée au moment
  de la destruction d’un objet

Généralités sur le POO   A. EL FERGOUGUI               15




       C++ et la programmation orientée
                 objet : l’amitié
• Une des originalités de C++ par rapport à
  d’autres langages de P.O.O. réside dans la
  possibilité de définir des « fonctions amies
  d’une classe ». Il s’agit, soit de fonctions
  usuelles, soit de fonctions membres qui sont
  autorisées (par une classe) à accéder aux
  données (encapsulées) de la classe. Certes, le
  principe d’encapsulation est violé, mais
  uniquement par des fonctions dûment
  autorisées à le faire.
Généralités sur le POO   A. EL FERGOUGUI               16




                                                                    8
01/10/2011




       C++ et la programmation orientée
            objet : la surdéfinition
• La classe est un type défini par l’utilisateur. La
  notion de « surdéfinition d’opérateurs » va
  permettre de doter cette classe d’opérations
  analogues à celles que l’on rencontre pour les
  types prédéfinis




Généralités sur le POO     A. EL FERGOUGUI                    17




       C++ et la programmation orientée
         objet : autres caractéristiques
• Le langage C disposait déjà de possibilités de conversions
  explicites ou implicites. C++ permet de les élargir aux types
  définis par l’utilisateur que sont les classes
• Naturellement, C++ dispose de l’héritage et même de
  possibilités dites « d’héritage multiple » permettant à une
  classe d’hériter simultanément de plusieurs autres
• Les entrées-sorties de C++ sont différentes de celles du C,
  car elle reposent sur la notion de « flots » (classes
  particulières)
• Avec sa normalisation, le C++ a été doté de la notion de
  patron (template en anglais). Un patron permet de définir
  des modèles paramétrables par des types, et utilisables
  pour générer différentes classes ou différentes fonctions
  qualifiées parfois de générique

Généralités sur le POO     A. EL FERGOUGUI                    18




                                                                           9

More Related Content

Viewers also liked

Carrière en informatique
Carrière en informatiqueCarrière en informatique
Carrière en informatiqueroxannedupuis
 
Groupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePoint
Groupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePointGroupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePoint
Groupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePointPimpMySharePoint
 
Moment potrivit
Moment potrivitMoment potrivit
Moment potrivitNamaste17
 
Smartfr plaquette gestion de projets
Smartfr plaquette gestion de projetsSmartfr plaquette gestion de projets
Smartfr plaquette gestion de projetsaprova84
 
intro - Mondialisation de l'Industrie du Divertissement
intro - Mondialisation de l'Industrie du Divertissementintro - Mondialisation de l'Industrie du Divertissement
intro - Mondialisation de l'Industrie du DivertissementMassimiliano Gambardella
 
Présentation Village des Créateur
Présentation Village des Créateur Présentation Village des Créateur
Présentation Village des Créateur Ninon Blanc
 
219 atelier 52_2007
219 atelier 52_2007219 atelier 52_2007
219 atelier 52_2007dj ami
 
Decret loi 115 du 2 Novembre 2011 sur les medias - Tunisie
Decret loi 115 du 2 Novembre 2011 sur les medias - TunisieDecret loi 115 du 2 Novembre 2011 sur les medias - Tunisie
Decret loi 115 du 2 Novembre 2011 sur les medias - TunisieMoez
 
Astrees synthese-resultats-enquete-030415
Astrees synthese-resultats-enquete-030415Astrees synthese-resultats-enquete-030415
Astrees synthese-resultats-enquete-030415aprova84
 
Partes del cuerpo mas accidentadas
Partes del cuerpo mas accidentadasPartes del cuerpo mas accidentadas
Partes del cuerpo mas accidentadasteran2015
 
Herramientas digitales grupo 193diapositivas2
Herramientas digitales grupo 193diapositivas2Herramientas digitales grupo 193diapositivas2
Herramientas digitales grupo 193diapositivas2wcblandon
 
Practica 1
Practica 1Practica 1
Practica 1diamelit
 
Sistema genesis
Sistema genesisSistema genesis
Sistema genesisdanielstev
 

Viewers also liked (20)

La famille
La familleLa famille
La famille
 
Carrière en informatique
Carrière en informatiqueCarrière en informatique
Carrière en informatique
 
Groupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePoint
Groupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePointGroupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePoint
Groupe d'usagers SharePoint Québec - Introduction à AngularJs pour SharePoint
 
7 projekt woda
7 projekt woda7 projekt woda
7 projekt woda
 
Moment potrivit
Moment potrivitMoment potrivit
Moment potrivit
 
Smartfr plaquette gestion de projets
Smartfr plaquette gestion de projetsSmartfr plaquette gestion de projets
Smartfr plaquette gestion de projets
 
intro - Mondialisation de l'Industrie du Divertissement
intro - Mondialisation de l'Industrie du Divertissementintro - Mondialisation de l'Industrie du Divertissement
intro - Mondialisation de l'Industrie du Divertissement
 
Présentation Village des Créateur
Présentation Village des Créateur Présentation Village des Créateur
Présentation Village des Créateur
 
Legalización de la marihuana en méxico
Legalización de la marihuana en méxicoLegalización de la marihuana en méxico
Legalización de la marihuana en méxico
 
219 atelier 52_2007
219 atelier 52_2007219 atelier 52_2007
219 atelier 52_2007
 
Decret loi 115 du 2 Novembre 2011 sur les medias - Tunisie
Decret loi 115 du 2 Novembre 2011 sur les medias - TunisieDecret loi 115 du 2 Novembre 2011 sur les medias - Tunisie
Decret loi 115 du 2 Novembre 2011 sur les medias - Tunisie
 
Matematicas 3 dx
Matematicas 3 dxMatematicas 3 dx
Matematicas 3 dx
 
Astrees synthese-resultats-enquete-030415
Astrees synthese-resultats-enquete-030415Astrees synthese-resultats-enquete-030415
Astrees synthese-resultats-enquete-030415
 
Manual siemens lavavajillas sr26t892eu
Manual siemens   lavavajillas sr26t892euManual siemens   lavavajillas sr26t892eu
Manual siemens lavavajillas sr26t892eu
 
El teclado
El tecladoEl teclado
El teclado
 
Partes del cuerpo mas accidentadas
Partes del cuerpo mas accidentadasPartes del cuerpo mas accidentadas
Partes del cuerpo mas accidentadas
 
Herramientas digitales grupo 193diapositivas2
Herramientas digitales grupo 193diapositivas2Herramientas digitales grupo 193diapositivas2
Herramientas digitales grupo 193diapositivas2
 
Practica 1
Practica 1Practica 1
Practica 1
 
Sistema genesis
Sistema genesisSistema genesis
Sistema genesis
 
Saint-Seb' Le Mag 135 juillet-août 2015
Saint-Seb' Le Mag 135 juillet-août 2015Saint-Seb' Le Mag 135 juillet-août 2015
Saint-Seb' Le Mag 135 juillet-août 2015
 

Similar to 0 poo cpp

Similar to 0 poo cpp (20)

.NET
.NET.NET
.NET
 
m103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdfm103-resume-cours-theorique-6156f136c407b.pdf
m103-resume-cours-theorique-6156f136c407b.pdf
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
CPOO.pdf
CPOO.pdfCPOO.pdf
CPOO.pdf
 
coursUMLDiagrammeClasse.pdf
coursUMLDiagrammeClasse.pdfcoursUMLDiagrammeClasse.pdf
coursUMLDiagrammeClasse.pdf
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 
Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011Cours java smi_2011_2012_partie_i_29_octobre_2011
Cours java smi_2011_2012_partie_i_29_octobre_2011
 
LA PROGRAMMATION ORIENTE OBJET
LA PROGRAMMATION ORIENTE OBJET LA PROGRAMMATION ORIENTE OBJET
LA PROGRAMMATION ORIENTE OBJET
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
Lecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptxLecture_1_Concepts-fondamentaux_P01.pptx
Lecture_1_Concepts-fondamentaux_P01.pptx
 
Intro ihm
Intro ihmIntro ihm
Intro ihm
 
4711538.pptx
4711538.pptx4711538.pptx
4711538.pptx
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
Formation technique odoo
Formation technique odooFormation technique odoo
Formation technique odoo
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Eclipse Impress
Eclipse ImpressEclipse Impress
Eclipse Impress
 
python
pythonpython
python
 

0 poo cpp

  • 1. 01/10/2011 Université Moulay Ismail Faculté des Sciences – Meknes Département de Mathématiques & Licence SMIA Informatique Module POO Année universitaire 2011/2012 Programmation Orientée Objet C++ A. EL FERGOUGUI elfergougui@fs-umi.ac.ma plan Généralités sur le POO A. EL FERGOUGUI 2 1
  • 2. 01/10/2011 Généralités sur la programmation orientée objet: POO • Problématique de la programmation • La programmation structurée • Les apports de la programmation orientée objet • P.O.O., langages de programmation et C++ • C++ et la programmation structurée • C++ et la programmation orientée objet Généralités sur le POO A. EL FERGOUGUI 3 Problématique de la programmation Critères de mesurer la qualité d’un logiciel: • l’exactitude : aptitude d’un logiciel à fournir les résultats voulus, dans des conditions normales d’utilisation (par exemple, données correspondant aux spécifications) ; • la robustesse : aptitude à bien réagir lorsque l’on s’écarte des conditions normales d’utilisation ; • l’extensibilité : facilité avec laquelle un programme pourra être adapté pour satisfaire à une évolution des spécifications ; • la réutilisabilité : possibilité d’utiliser certaines parties (modules) du logiciel pour résoudre un autre problème ; • la portabilité : facilité avec laquelle on peut exploiter un même logiciel dans différentes implémentations ; • l’efficience : temps d’exécution, taille mémoire... Généralités sur le POO A. EL FERGOUGUI 4 2
  • 3. 01/10/2011 La programmation structurée • En programmation structurée, un programme est formé de la réunion de différentes procédures et de différentes structures de données, généralement indépendantes de ces procédures !!!. Programmes = algorithmes + structures de données Généralités sur le POO A. EL FERGOUGUI 5 Les apports de la programmation orientée objet • Objet: C’est là qu’intervient la programmation orientée objet (en abrégé P.O.O), fondée justement sur le concept d’objet, à savoir une association des données et des procédures (qu’on appelle alors méthodes) agissant sur ces données Méthodes + Données = Objet Généralités sur le POO A. EL FERGOUGUI 6 3
  • 4. 01/10/2011 Les apports de la programmation orientée objet • Encapsulation L’encapsulation des données, signifie qu’il n’est pas possible d’agir directement sur les données d’un objet ; il est nécessaire de passer par l’intermédiaire de ses méthodes, qui jouent ainsi le rôle d’interface obligatoire. On traduit parfois cela en disant que l’appel d’une méthode est en fait l’envoi d’un « message » à l’objet. Généralités sur le POO A. EL FERGOUGUI 7 Les apports de la programmation orientée objet • Classe En P.O.O. apparaît généralement le concept de classe, qui correspond simplement à la généralisation de la notion de type que l’on rencontre dans les langages classiques. En effet, une classe n’est rien d’autre que la description d’un ensemble d’objets ayant une structure de données commune et disposant des mêmes méthodes. Les objets apparaissent alors comme des variables d’un tel type classe (on dit aussi qu’un objet est une « instance » de sa classe). Généralités sur le POO A. EL FERGOUGUI 8 4
  • 5. 01/10/2011 Les apports de la programmation orientée objet Héritage: Un autre concept important en P.O.O. est celui d’héritage. Il permet de définir une nouvelle classe à partir d’une classe existante, à laquelle on ajoute de nouvelles données et de nouvelles méthodes. • La conception de la nouvelle classe, qui « hérite » des propriétés et des aptitudes de l’ancienne, peut ainsi s’appuyer sur des réalisations antérieures parfaitement au point et les « spécialiser » à volonté. Généralités sur le POO A. EL FERGOUGUI 9 Les apports de la programmation orientée objet Polymorphisme: • Généralement, en P.O.O, une classe dérivée peut « redéfinir » (c’est-à-dire modifier) certaines des méthodes héritées de sa classe de base. • Cette possibilité est la clé de ce que l’on nomme le polymorphisme, c’est-à-dire la possibilité de traiter de la même manière des objets de types différents, pour peu qu’ils soient tous de classes dérivées de la même classe de base. Généralités sur le POO A. EL FERGOUGUI 10 5
  • 6. 01/10/2011 P.O.O., langages de programmation et C++ • certains langages peuvent être conçus pour appliquer à la lettre ces principes et réaliser ce que nous nommons de la P.O.O. « pure ». C’est par exemple le cas de Simula, Smalltalk ou, plus récemment, Eiffel ou Java. • C++= C + POO Généralités sur le POO A. EL FERGOUGUI 11 C++ et la programmation structurée • Les possibilités de programmation structurée de C++ sont en fait celles du langage C • C++ c’est du C + d’autres enrichissements • Plus de type; plus de structuration, opérateurs … etc Généralités sur le POO A. EL FERGOUGUI 12 6
  • 7. 01/10/2011 C++ et la programmation orientée objet • Les possibilités de P.O.O. représentent bien sûr l’essentiel de l’apport de C++ au langage C. • C++ dispose de la notion de classe qui comporte: – la description d’une structure de données ; – des méthodes. • Sur le plan du vocabulaire, C++ utilise des termes qui lui sont propres. On parle en effet de : – « membres données » pour désigner les différents membres de la structure de données associée à une classe ; – « fonctions membres » pour désigner les méthodes Généralités sur le POO A. EL FERGOUGUI 13 C++ et la programmation orientée objet: Instanciation d’objets • À partir d’une classe, on pourra « instancier » des objets (nous dirons aussi créer des objets) de deux façons différentes : • soit par des déclarations usuelles, les emplacements étant alors gérés automatiquement sous forme de ce que l’on nomme une « pile » ; • soit par allocation dynamique dans ce que l’on nomme un « tas », les emplacements étant alors gérés par le programmeur lui-même. Généralités sur le POO A. EL FERGOUGUI 14 7
  • 8. 01/10/2011 C++ et la programmation orientée objet: le constructeur/destructeur • Comme la plupart des langages objets, C++ permet de définir ce que l’on nomme des « constructeurs » de classe. Un constructeur est une fonction membre particulière qui est exécutée au moment de la création d’un objet de la classe. • Le constructeur peut notamment prendre en charge l’initialisation d’un objet, au sens le plus large du terme. • De manière similaire, une classe peut disposer d’un « destructeur », fonction membre exécutée au moment de la destruction d’un objet Généralités sur le POO A. EL FERGOUGUI 15 C++ et la programmation orientée objet : l’amitié • Une des originalités de C++ par rapport à d’autres langages de P.O.O. réside dans la possibilité de définir des « fonctions amies d’une classe ». Il s’agit, soit de fonctions usuelles, soit de fonctions membres qui sont autorisées (par une classe) à accéder aux données (encapsulées) de la classe. Certes, le principe d’encapsulation est violé, mais uniquement par des fonctions dûment autorisées à le faire. Généralités sur le POO A. EL FERGOUGUI 16 8
  • 9. 01/10/2011 C++ et la programmation orientée objet : la surdéfinition • La classe est un type défini par l’utilisateur. La notion de « surdéfinition d’opérateurs » va permettre de doter cette classe d’opérations analogues à celles que l’on rencontre pour les types prédéfinis Généralités sur le POO A. EL FERGOUGUI 17 C++ et la programmation orientée objet : autres caractéristiques • Le langage C disposait déjà de possibilités de conversions explicites ou implicites. C++ permet de les élargir aux types définis par l’utilisateur que sont les classes • Naturellement, C++ dispose de l’héritage et même de possibilités dites « d’héritage multiple » permettant à une classe d’hériter simultanément de plusieurs autres • Les entrées-sorties de C++ sont différentes de celles du C, car elle reposent sur la notion de « flots » (classes particulières) • Avec sa normalisation, le C++ a été doté de la notion de patron (template en anglais). Un patron permet de définir des modèles paramétrables par des types, et utilisables pour générer différentes classes ou différentes fonctions qualifiées parfois de générique Généralités sur le POO A. EL FERGOUGUI 18 9