partie 1: notions de base — programmation orientée objet en c++
DESCRIPTION
Support material for a continued education course "Introduction to object oriented programming in C++". In French.TRANSCRIPT
![Page 1: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/1.jpg)
Fabio [email protected]
Programmation Orientée Objet en C++Programmation Orientée Objet en C++
Première Partie: Notions de BasePremière Partie: Notions de Base
![Page 2: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/2.jpg)
© 1997-2003 Fabio HERNANDEZ4POO en C++: Notions de Base
Vue d'EnsembleVue d'Ensemble
Notions de base Types, variables, opérateursContrôle d'exécutionFonctionsMémoire dynamiqueQualité du logicielEvolution du modèle objet Objets et classesFonctions membresClasses génériquesHéritagePolymorphismeHéritage multipleEntrée/sortie
![Page 3: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/3.jpg)
© 1997-2003 Fabio HERNANDEZ5POO en C++: Notions de Base
Table des MatièresTable des Matières
Pour commencer...Fichiers sourcesCommentairesConstruction de l’exécutableLe pré-processeurCommande de compilationA propos de l’entrée/sortie en C++
![Page 4: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/4.jpg)
© 1997-2003 Fabio HERNANDEZ6POO en C++: Notions de Base
Pour commencer...Pour commencer...
Tout programme doit avoir un point d’entrée nommé mainint 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 fonctionmain retourne un entier au système: 0 (zéro) veut dire succèsChaque expression doit finir par ; (point virgule)
![Page 5: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/5.jpg)
© 1997-2003 Fabio HERNANDEZ7POO en C++: Notions de Base
Fichiers SourcesFichiers Sources
Un programme est généralement constitué de plusieurs modulesChaque module est composé de deux fichiers sources:
un fichier contenant la description de l’interface du moduleun 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 (headerfiles ou include files).C .cc .cxx .cpp .c++ pour les fichiers d’implémentation
Dans un fichier source on peut trouver:commentairesinstructions pré-processeurinstructions C++
![Page 6: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/6.jpg)
© 1997-2003 Fabio HERNANDEZ8POO en C++: Notions de Base
CommentairesCommentaires
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//
![Page 7: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/7.jpg)
© 1997-2003 Fabio HERNANDEZ9POO en C++: Notions de Base
Construction de l’ExécutableConstruction de l’Exécutable
example.cpp example.o
011011001011101
010010101011100
Edition des liens
101011011000101
example
bibliotèquesautres modulesfichiers .h
example.i
CompilationPrécompilation
![Page 8: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/8.jpg)
© 1997-2003 Fabio HERNANDEZ10POO en C++: Notions de Base
Le préLe pré--processeurprocesseur
Filtre utilisé avant la compilation de chaque moduleCapable de:
suppression des commentairesinclusion d’autres fichiersexpansion des macro-définitionscompilation conditionnelle
# doit être le premier caractère non blanc de la ligneQuelques instructions utiles: include, define, undef, if...else...endif, ifdef...else...endif,ifndef...else...endif, error, pragma
![Page 9: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/9.jpg)
© 1997-2003 Fabio HERNANDEZ11POO en C++: Notions de Base
Le préLe pré--processeur(suite)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
![Page 10: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/10.jpg)
© 1997-2003 Fabio HERNANDEZ12POO en C++: Notions de Base
Commande de CompilationCommande 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 HPaCC -o myTest test.C
Sous toutes les plate-formes avec le compilateur GNUg++ -o myTest test.C
Pour exécuter fairemyTest
Pour les environnements Windows ou Mac (Borland, Microsoft,Symantec, Watcom, MetroWerks...) voir la doc du produit
![Page 11: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/11.jpg)
© 1997-2003 Fabio HERNANDEZ13POO en C++: Notions de Base
A propos de l’entrée/sortie en C++A propos de l’entrée/sortie en C++
E/S ne fait pas partie de C++ mêmeSupporté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 cinSortie dirigée vers la console (sortie standard) est envoyée viacout
Sortie dirigée vers la sortie standard des erreurs est envoyée via cerrcin, cout et cerr sont prédéfinis et directement utilisables par tout programme C++
![Page 12: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/12.jpg)
© 1997-2003 Fabio HERNANDEZ14POO en C++: Notions de Base
A propos de l’entrée/sortie en C++(suite)A propos de l’entrée/sortie en C++(suite)
L’opérateur << est utilisé pour envoyer des messages verscout et cerrExemple
Hello, World
#include <iostream> // Standard C++ I/O
void main(){
cout << "Hello, World" << endl;}
![Page 13: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/13.jpg)
© 1997-2003 Fabio HERNANDEZ15POO en C++: Notions de Base
A propos de l’entrée/sortie en C++(suite)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
![Page 14: Partie 1: Notions de base — Programmation orientée objet en C++](https://reader038.vdocument.in/reader038/viewer/2022110121/5591974c1a28abd4668b4606/html5/thumbnails/14.jpg)
© 1997-2003 Fabio HERNANDEZ16POO en C++: Notions de Base
A propos de l’entrée/sortie en C++(suite)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;
}