SlideShare une entreprise Scribd logo
Programmation Orientée Objet en C++
      Première Partie: Notions de Base



               Fabio Hernandez
             Fabio.Hernandez@in2p3.fr
Vue d'Ensemble
   Notions de base
   Types, variables, opérateurs
   Contrôle d'exécution
   Fonctions
   Mémoire dynamique
   Qualité du logiciel
   Evolution du modèle objet
   Objets et classes
   Fonctions membres
   Classes génériques
   Héritage
   Polymorphisme
   Héritage multiple
   Entrée/sortie


POO en C++:   Notions de Base          4         © 1997-2003 Fabio HERNANDEZ
Table des Matières

   Pour commencer...
   Fichiers sources
   Commentaires
   Construction de l’exécutable
   Le pré-processeur
   Commande de compilation
   A propos de l’entrée/sortie en C++




POO en C++:   Notions de Base            5           © 1997-2003 Fabio HERNANDEZ
Pour commencer...

    Tout programme doit avoir un point d’entrée nommé main
          int main()
          {
             return 0;
          }

    main est la fonction appelée par le système d’exploitation lors
    de l'exécution du programme
    { et } délimitent le corps de la fonction
    main retourne un entier au système: 0 (zéro) veut dire succès
    Chaque expression doit finir par ; (point virgule)




POO en C++:   Notions de Base           6           © 1997-2003 Fabio HERNANDEZ
Fichiers Sources

   Un programme est généralement constitué de plusieurs modules
   Chaque module est composé de deux fichiers sources:
        un fichier contenant la description de l’interface du module
        un fichier contenant l’implémentation proprement dite du module
   Un suffixe est utilisé pour déterminer le type de fichier
        .h .H .hpp .hxx pour les fichiers de description d’interface (header
        files ou include files)
        .C .cc .cxx .cpp .c++ pour les fichiers d’implémentation
   Dans un fichier source on peut trouver:
        commentaires
        instructions pré-processeur
        instructions C++



POO en C++:   Notions de Base           7                 © 1997-2003 Fabio HERNANDEZ
Commentaires

   C et C++
     /* Un commentaire en une seule ligne */
     /*
      * Un commentaire sur plusieurs
      * lignes
      */

   C++ uniquement
     // Un commentaire jusqu’à la fin de cette ligne

     //
     // Un commentaire sur plusieurs
     // lignes
     //


POO en C++:   Notions de Base         8        © 1997-2003 Fabio HERNANDEZ
Construction de l’Exécutable
               Précompilation            Compilation
                                                           01101   Edition des liens
                                                           10010
                                                           11101
                                                        example.o                   10101
example.cpp                       example.i
                                                                                    10110
                                                                                    00101

                                                          01001                  example
                                                          01010
                                                          11100

                                                       bibliotèques
fichiers .h                                            autres modules



 POO en C++:    Notions de Base               9                    © 1997-2003 Fabio HERNANDEZ
Le pré-processeur

   Filtre utilisé avant la compilation de chaque module
   Capable de:
        suppression des commentaires
        inclusion d’autres fichiers
        expansion des macro-définitions
        compilation conditionnelle
   # doit être le premier caractère non blanc de la ligne
   Quelques instructions utiles: include, define, undef,
   if...else...endif, ifdef...else...endif,
   ifndef...else...endif, error, pragma




POO en C++:   Notions de Base           10          © 1997-2003 Fabio HERNANDEZ
Le pré-processeur(suite)

   Inclusion de fichiers
          #include <iostream>
          #include "MyFileManager.h"
   Macro-definitions
          #define MAX_FILES        60
          #define ADD(a,b)         (a+b)
   Compilation conditionnelle
     #if defined(__hpux)
        // Put here HP-UX specific C++ code
     #elif defined(linux)
       // Put here LINUX specific C++ code
     #else
       // Put here C++ code for any other platform
     #endif



POO en C++:   Notions de Base         11          © 1997-2003 Fabio HERNANDEZ
Commande de Compilation

   Dépend de l’environnement (plate-forme + compilateur + outils)
   Sous AIX avec le compilateur IBM
                      xlC -o myTest test.C
   Sous HP-UX avec le compilateur HP
                      aCC -o myTest test.C
   Sous toutes les plate-formes avec le compilateur GNU
                      g++ -o myTest test.C
   Pour exécuter faire
                     myTest
   Pour les environnements Windows ou Mac (Borland, Microsoft,
   Symantec, Watcom, MetroWerks...) voir la doc du produit


POO en C++:   Notions de Base           12       © 1997-2003 Fabio HERNANDEZ
A propos de l’entrée/sortie en C++

  E/S ne fait pas partie de C++ même
  Supportée par une bibliothèque appelée iostream, elle même
  écrite en C++
  Entrée en provenance de la console (entrée standard) est
  récupérée via cin
  Sortie dirigée vers la console (sortie standard) est envoyée via
  cout
  Sortie dirigée vers la sortie standard des erreurs est envoyée
  via cerr
  cin, cout et cerr sont prédéfinis et directement utilisables
  par tout programme C++


POO en C++:   Notions de Base   13                © 1997-2003 Fabio HERNANDEZ
A propos de l’entrée/sortie en C++(suite)

   L’opérateur << est utilisé pour envoyer des messages vers
   cout et cerr
   Exemple
        Hello, World

          #include <iostream> // Standard C++ I/O
          void main()
          {
             cout << "Hello, World" << endl;
          }




POO en C++:   Notions de Base     14                © 1997-2003 Fabio HERNANDEZ
A propos de l’entrée/sortie en C++(suite)

   Accepte aussi des expressions plus complexes
   #include <iostream> // Standard C++ I/O
   int main()
   {
      cout << "Starting..." << endl;
        cout << "The result of 120+45 equals "
             << 120+45 << endl;
        return 0;
   }
   iostream contient des declarations nécessaires pour le
   système d’entrée/sortie de C++
   endl est utilisé pour contrôler le changement de ligne


POO en C++:   Notions de Base    15               © 1997-2003 Fabio HERNANDEZ
A propos de l’entrée/sortie en C++(suite)

   L’opérateur >> est utilisé pour extraire des données de cin
   (l'entrée standard)
   Exemple
   #include <iostream>          // Standard C++ I/O
   int main()
   {
      int value1;
      int value2;
      cout << "Enter two integers:         " << endl;
      cin >> value1 >> value2;
      cout << "Values entered are:         " << value1
           << " and " << value2 <<         endl;
      cout << "value1+value2 =" <<         value1 + value2 << endl;
      return 0;
   }



POO en C++:   Notions de Base         16                © 1997-2003 Fabio HERNANDEZ

Contenu connexe

PDF
Partie 14: Entrée/Sortie — Programmation orientée objet en C++
PDF
Partie 9: Fonctions Membres — Programmation orientée objet en C++
PDF
Partie 5: Mémoire Dynamique — Programmation orientée objet en C++
PDF
Partie 12: Polymorphisme — Programmation orientée objet en C++
PDF
Partie 13: Héritage Multiple — Programmation orientée objet en C++
PDF
Partie 8: Objets et Classes — Programmation orientée objet en C++
PDF
Partie 10: Classes Génériques — Programmation orientée objet en C++
PDF
Partie 4: Fonctions - Programmation orientée objet en C++
Partie 14: Entrée/Sortie — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 5: Mémoire Dynamique — Programmation orientée objet en C++
Partie 12: Polymorphisme — Programmation orientée objet en C++
Partie 13: Héritage Multiple — Programmation orientée objet en C++
Partie 8: Objets et Classes — Programmation orientée objet en C++
Partie 10: Classes Génériques — Programmation orientée objet en C++
Partie 4: Fonctions - Programmation orientée objet en C++

Tendances (20)

PDF
Partie 11: Héritage — Programmation orientée objet en C++
PDF
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
PDF
Partie 2: Types, Variables, Opérateurs — Programmation orientée objet en C++
PDF
Partie 3: Contrôle d'Exécution — Programmation orientée objet en C++
PDF
Chapitre4: Pointeurs et références
PDF
Chap2fonctionscpp
PDF
Chap1V2019: Cours en C++
PDF
Chap1: Cours en C++
PDF
Chapitre2fonctionscppv2019
PPTX
Développer en natif avec C++11
PPTX
C++11 en 12 exemples simples
PDF
Chap 6 : classes et interfaces
PDF
Langage C
PDF
Polymorphisme
PDF
Chapitre6: Surcharge des opérateurs
PPTX
Les nouveautés de C++11 : Ecrire du C++ Moderne
PDF
Polymorphisme, interface et classe abstraite
PPTX
Chapitre1: Langage Python
PDF
Chapitre5: Classes et objets
PDF
Chapitre 11: Expression Lambda et Référence de méthode en Java
Partie 11: Héritage — Programmation orientée objet en C++
Partie 7: Evolution du Modèle Objet — Programmation orientée objet en C++
Partie 2: Types, Variables, Opérateurs — Programmation orientée objet en C++
Partie 3: Contrôle d'Exécution — Programmation orientée objet en C++
Chapitre4: Pointeurs et références
Chap2fonctionscpp
Chap1V2019: Cours en C++
Chap1: Cours en C++
Chapitre2fonctionscppv2019
Développer en natif avec C++11
C++11 en 12 exemples simples
Chap 6 : classes et interfaces
Langage C
Polymorphisme
Chapitre6: Surcharge des opérateurs
Les nouveautés de C++11 : Ecrire du C++ Moderne
Polymorphisme, interface et classe abstraite
Chapitre1: Langage Python
Chapitre5: Classes et objets
Chapitre 11: Expression Lambda et Référence de méthode en Java
Publicité

Similaire à Partie 1: Notions de base — Programmation orientée objet en C++ (20)

PDF
Chapitre2_les_bases_de_la_POO_et_CPP.pdf
PDF
cour formation c Langage C_ Licence QL.pdf
PDF
Outils de construction pour la recherche
PDF
SystemC
PDF
Cours_C_for_Etudiant.pdf
PDF
INITIATION A LA PROGRAMMATION -NOTIONS DE BASE EN LANGAGE C++ - 2
PDF
Compte rendu Blend Web Mix 2015
PPTX
Présentation de langage c syntaxe rt xemple.pptx
PPT
Cours de programmation en langage C. idéal pour les apprenants du langage C
PPTX
Php sous Windows - webcamps Paris
PDF
Hady bah l3
PDF
introduction au CPP
PPTX
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
PPTX
Programmation-en-C-ESIITECH-2023-2024.pptx
PPTX
Vim presentation
PDF
0419-langages-de-programmation-et-compilation.pdf
ODP
Programmation événementielle avec VB (ISIG)
PDF
360671424-Linux-Lpi-Compilation-Ecran-Hide.pdf
PDF
Lp web tp3_idse
Chapitre2_les_bases_de_la_POO_et_CPP.pdf
cour formation c Langage C_ Licence QL.pdf
Outils de construction pour la recherche
SystemC
Cours_C_for_Etudiant.pdf
INITIATION A LA PROGRAMMATION -NOTIONS DE BASE EN LANGAGE C++ - 2
Compte rendu Blend Web Mix 2015
Présentation de langage c syntaxe rt xemple.pptx
Cours de programmation en langage C. idéal pour les apprenants du langage C
Php sous Windows - webcamps Paris
Hady bah l3
introduction au CPP
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024.pptx
Vim presentation
0419-langages-de-programmation-et-compilation.pdf
Programmation événementielle avec VB (ISIG)
360671424-Linux-Lpi-Compilation-Ecran-Hide.pdf
Lp web tp3_idse
Publicité

Partie 1: Notions de base — Programmation orientée objet en C++

  • 1. Programmation Orientée Objet en C++ Première Partie: Notions de Base Fabio Hernandez Fabio.Hernandez@in2p3.fr
  • 2. Vue d'Ensemble Notions de base Types, variables, opérateurs Contrôle d'exécution Fonctions Mémoire dynamique Qualité du logiciel Evolution du modèle objet Objets et classes Fonctions membres Classes génériques Héritage Polymorphisme Héritage multiple Entrée/sortie POO en C++: Notions de Base 4 © 1997-2003 Fabio HERNANDEZ
  • 3. Table des Matières Pour commencer... Fichiers sources Commentaires Construction de l’exécutable Le pré-processeur Commande de compilation A propos de l’entrée/sortie en C++ POO en C++: Notions de Base 5 © 1997-2003 Fabio HERNANDEZ
  • 4. Pour commencer... Tout programme doit avoir un point d’entrée nommé main int main() { return 0; } main est la fonction appelée par le système d’exploitation lors de l'exécution du programme { et } délimitent le corps de la fonction main retourne un entier au système: 0 (zéro) veut dire succès Chaque expression doit finir par ; (point virgule) POO en C++: Notions de Base 6 © 1997-2003 Fabio HERNANDEZ
  • 5. Fichiers Sources Un programme est généralement constitué de plusieurs modules Chaque module est composé de deux fichiers sources: un fichier contenant la description de l’interface du module un fichier contenant l’implémentation proprement dite du module Un suffixe est utilisé pour déterminer le type de fichier .h .H .hpp .hxx pour les fichiers de description d’interface (header files ou include files) .C .cc .cxx .cpp .c++ pour les fichiers d’implémentation Dans un fichier source on peut trouver: commentaires instructions pré-processeur instructions C++ POO en C++: Notions de Base 7 © 1997-2003 Fabio HERNANDEZ
  • 6. Commentaires C et C++ /* Un commentaire en une seule ligne */ /* * Un commentaire sur plusieurs * lignes */ C++ uniquement // Un commentaire jusqu’à la fin de cette ligne // // Un commentaire sur plusieurs // lignes // POO en C++: Notions de Base 8 © 1997-2003 Fabio HERNANDEZ
  • 7. Construction de l’Exécutable Précompilation Compilation 01101 Edition des liens 10010 11101 example.o 10101 example.cpp example.i 10110 00101 01001 example 01010 11100 bibliotèques fichiers .h autres modules POO en C++: Notions de Base 9 © 1997-2003 Fabio HERNANDEZ
  • 8. Le pré-processeur Filtre utilisé avant la compilation de chaque module Capable de: suppression des commentaires inclusion d’autres fichiers expansion des macro-définitions compilation conditionnelle # doit être le premier caractère non blanc de la ligne Quelques instructions utiles: include, define, undef, if...else...endif, ifdef...else...endif, ifndef...else...endif, error, pragma POO en C++: Notions de Base 10 © 1997-2003 Fabio HERNANDEZ
  • 9. Le pré-processeur(suite) Inclusion de fichiers #include <iostream> #include "MyFileManager.h" Macro-definitions #define MAX_FILES 60 #define ADD(a,b) (a+b) Compilation conditionnelle #if defined(__hpux) // Put here HP-UX specific C++ code #elif defined(linux) // Put here LINUX specific C++ code #else // Put here C++ code for any other platform #endif POO en C++: Notions de Base 11 © 1997-2003 Fabio HERNANDEZ
  • 10. Commande de Compilation Dépend de l’environnement (plate-forme + compilateur + outils) Sous AIX avec le compilateur IBM xlC -o myTest test.C Sous HP-UX avec le compilateur HP aCC -o myTest test.C Sous toutes les plate-formes avec le compilateur GNU g++ -o myTest test.C Pour exécuter faire myTest Pour les environnements Windows ou Mac (Borland, Microsoft, Symantec, Watcom, MetroWerks...) voir la doc du produit POO en C++: Notions de Base 12 © 1997-2003 Fabio HERNANDEZ
  • 11. A propos de l’entrée/sortie en C++ E/S ne fait pas partie de C++ même Supportée par une bibliothèque appelée iostream, elle même écrite en C++ Entrée en provenance de la console (entrée standard) est récupérée via cin Sortie dirigée vers la console (sortie standard) est envoyée via cout Sortie dirigée vers la sortie standard des erreurs est envoyée via cerr cin, cout et cerr sont prédéfinis et directement utilisables par tout programme C++ POO en C++: Notions de Base 13 © 1997-2003 Fabio HERNANDEZ
  • 12. A propos de l’entrée/sortie en C++(suite) L’opérateur << est utilisé pour envoyer des messages vers cout et cerr Exemple Hello, World #include <iostream> // Standard C++ I/O void main() { cout << "Hello, World" << endl; } POO en C++: Notions de Base 14 © 1997-2003 Fabio HERNANDEZ
  • 13. A propos de l’entrée/sortie en C++(suite) Accepte aussi des expressions plus complexes #include <iostream> // Standard C++ I/O int main() { cout << "Starting..." << endl; cout << "The result of 120+45 equals " << 120+45 << endl; return 0; } iostream contient des declarations nécessaires pour le système d’entrée/sortie de C++ endl est utilisé pour contrôler le changement de ligne POO en C++: Notions de Base 15 © 1997-2003 Fabio HERNANDEZ
  • 14. A propos de l’entrée/sortie en C++(suite) L’opérateur >> est utilisé pour extraire des données de cin (l'entrée standard) Exemple #include <iostream> // Standard C++ I/O int main() { int value1; int value2; cout << "Enter two integers: " << endl; cin >> value1 >> value2; cout << "Values entered are: " << value1 << " and " << value2 << endl; cout << "value1+value2 =" << value1 + value2 << endl; return 0; } POO en C++: Notions de Base 16 © 1997-2003 Fabio HERNANDEZ