partie 1: notions de base — programmation orientée objet en c++

14
Fabio Hernandez [email protected] Programmation Orientée Objet en C++ Programmation Orientée Objet en C++ Première Partie: Notions de Base Première Partie: Notions de Base

Upload: fabio-hernandez

Post on 30-Jun-2015

1.805 views

Category:

Documents


1 download

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++

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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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++

© 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;

}