Vous êtes sur la page 1sur 45

setbeamertemplatenavigation symbols

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

1 / 31

Le langage C++ (partie I)


Prsente par Manel Tekaya

21 avril 2011

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

1 / 31

Historique du langage C++

Appel lorigine Langage C avec classes

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

2 / 31

Historique du langage C++

Appel lorigine Langage C avec classes Devenu une norme ANSI/ISO C++ en juillet 1998(ISO/IEC 14882)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

2 / 31

Historique du langage C++

Appel lorigine Langage C avec classes Devenu une norme ANSI/ISO C++ en juillet 1998(ISO/IEC 14882)
ANSI : American National Standard Institute ISO : International Standard Organization

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

2 / 31

Sommaire

Plan

Historique du langage C++

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

3 / 31

Sommaire

Plan

Historique du langage C++ Quest-ce que le C++ ?

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

3 / 31

Sommaire

Plan

Historique du langage C++ Quest-ce que le C++ ? Premiers pas en C++

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

3 / 31

Sommaire

Plan

Historique du langage C++ Quest-ce que le C++ ? Premiers pas en C++ Bibliographie

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

3 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?

Historique du langage C++ Quest-ce que le C++ ? Premiers pas en C++ Bibliographie

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

4 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Gestion de la mmoire [Alard, 2000]

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Gestion de la mmoire [Alard, 2000]


Allocation des objets en mmoire statique (variables globales), dans la pile (variables automatiques) ou dans le tas (allocation dynamique)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Gestion de la mmoire [Alard, 2000]


Allocation des objets en mmoire statique (variables globales), dans la pile (variables automatiques) ou dans le tas (allocation dynamique) Accs direct aux objets ou par pointeur ou par rfrence

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Gestion de la mmoire [Alard, 2000]


Allocation des objets en mmoire statique (variables globales), dans la pile (variables automatiques) ou dans le tas (allocation dynamique) Accs direct aux objets ou par pointeur ou par rfrence Libration de la mmoire la charge du programmeur dans le cas de lallocation dynamique

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Gestion de la mmoire [Alard, 2000]


Allocation des objets en mmoire statique (variables globales), dans la pile (variables automatiques) ou dans le tas (allocation dynamique) Accs direct aux objets ou par pointeur ou par rfrence Libration de la mmoire la charge du programmeur dans le cas de lallocation dynamique

Autres possibilits offertes par le C++

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

5 / 31

Quest-ce que le C++ ?

Quest-ce que le C++ ?


Compatibilit C/C++ [Alard, 2000]
C++ = sur-ensemble de C C++ ? ajout en particulier de lorient-objet (classes, hritage, polymorphisme) Cohabitation possible du procdural et de lorient-objet en C++

Gestion de la mmoire [Alard, 2000]


Allocation des objets en mmoire statique (variables globales), dans la pile (variables automatiques) ou dans le tas (allocation dynamique) Accs direct aux objets ou par pointeur ou par rfrence Libration de la mmoire la charge du programmeur dans le cas de lallocation dynamique

Autres possibilits offertes par le C++


Variables globales, compilation conditionnelle (prprocesseur), pointeurs, surcharge des oprateurs, patrons de classe template et hritage multiple
Manel Tekaya () Le langage C++ (partie I) 21 avril 2011 5 / 31

Premiers pas en C++

Plan

Historique du langage C++ Quest-ce que le C++ ? Premiers pas en C++ Bibliographie

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

6 / 31

Premiers pas en C++

Exemple de programme C++

Exemple de programme C++

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

7 / 31

Premiers pas en C++

cout et cin (1/2)

cout et cin (1/2)


Entres/sorties fournies travers la librairie iostream

cout expr1 ... exprn


Instruction afchant expr1 puis expr2 , etc. cout : ot de sortie associ la sortie standard (stdout) : oprateur binaire associatif gauche, de premire oprande cout et de 2me lexpression afcher, et de rsultat le ot de sortie :oprateur surcharg(ou sur-dni) ? utilis aussi bien pour les chanes de caractres, que les entiers, les rels etc.

cin var1 ... varn


Instruction affectant aux variables var1 , var2 , etc. les valeurs lues (au clavier) cin : ot dentre associe lentre standard (stdin) : oprateur similaire

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

8 / 31

Premiers pas en C++

cout et cin (2/2)

cout et cin (2/2)


Possibilit de modier la faon dont les lments sont lus ou crits dans le ot :

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

9 / 31

Premiers pas en C++

Organisation dun programme C++

Organisation dun programme C++


Programme C++ gnralement constitu de plusieurs modules, compils sparment Fichier entte - dextension .h (ou .hh ou .hpp)
Contenant les dclarations de types, fonctions, variables et constantes, etc. Inclus via la commande #include

Fichier source - dextension .cpp ou .C

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

10 / 31

Premiers pas en C++

Compilation

Compilation
Langage C++ : langage compil => chier excutable produit partir de chiers sources par un compilateur Compilation en 3 phases :
Preprocessing : Suppression des commentaires et traitement des directives de compilation commenant par # code source brut Compilation en chier objet : compilation du source brut => chier objet (portant souvent lextension .obj ou .o sans main) Edition de liens : Combinaison du chier objet de lapplication avec ceux des bibliothques quelle utilise =>chier excutable binaire ou une librairie dynamique (.dll sous Windows)

Compilation => vrication de la syntaxe mais pas de vrication de la gestion de la mmoire (erreur dexcution segmentation fault)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

11 / 31

Premiers pas en C++

Erreurs gnres

Compilation

Erreurs de compilation
Erreur de syntaxe, dclaration manquante,parenthse manquante,...

Erreur de liens
Appel a des fonctions dont les bibliothques sont manquantes

Erreur dexcution
Segmentation fault, overow, division par zro

Erreur logique

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

12 / 31

Premiers pas en C++

Compilateur C++

Compilateur C++

Compilateurs gratuits (open-source)


Plugin C++ pour Eclipse http ://www.eclipse.org/cdt/ Tlcharger http ://www.eclipselabs.org/p/wascana pour dvelopper sous Windows Dernire version Juin 2010 Dev-C++ 5 - http ://www.bloodshed.net/devcpp.html

Compilateurs propritaires
Visual C++ ( http ://msdn.microsoft.com/fr-fr/express/) Borland C++ ( version libre tlchargeable ladresse : http ://www.codegear.com/downloads/free/cppbuilder)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

13 / 31

Premiers pas en C++

Quelques rgles de programmation

Quelques rgles de programmation


1

Dnir les classes, inclure les librairies etc. dans un chier dextension .h Dnir le corps des mthodes et des fonctions, le programme main etc. dans un chier dextension .cpp (incluant le chier .h) Compiler rgulirement Pour dboguer
Penser utiliser les commentaires et les cout Utiliser le dbogueur

3 4

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

14 / 31

Premiers pas en C++

Espaces de noms

Espaces de noms
Utilisation despaces de noms(namespace) lors de lutilisation de nombreuses bibliothques pour viter les conits de noms Espace de noms : association dun nom un ensemble de variable, types ou fonctions Ex. Si la fonction "MaFonction()" est dnie dans lespace de noms MonEspace, lappel de la fonction se fait par "MonEspace : :MaFonction()" Pour tre parfaitement correct : std : :cin std : :cout : :oprateur de rsolution de porte

std : :endl Pour viter lappel explicite un espace de noms : using using std : :cout ; // pour une fonction spcique using namespace std ; // pour toutes les fonctions
Manel Tekaya () Le langage C++ (partie I) 21 avril 2011 15 / 31

Premiers pas en C++

Type de base (1/5)

Type de base (1/5)

Hritage des mcanismes de bases du C (pointeurs inclus) Dclaration et initialisation de variables :


bool this_is_true = true; //variable boolenne int int = 0 ; //entier long j = 123456789 ; // entier long oat f = 3.1 ; // rel double pi = 3.141592653589793238462643 ; // rel double prcision char c=a ; // caractre

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

16 / 31

Premiers pas en C++

Type de base (2/5)

Type de base (2/5)


Le type dune donne dtermine : La place mmoire (sizeof()) Les oprations lgales Les bornes

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

17 / 31

Premiers pas en C++

Type de base (3/5)

Type de base (3/5)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

18 / 31

Premiers pas en C++

Type de base (4/5)

Type de base (4/5)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

19 / 31

Premiers pas en C++

Type de base (5/5)

Type de base (5/5)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

20 / 31

Premiers pas en C++

Dclaration, rgles didentication et porte des variables

Dclaration, rgles didentication et porte des variables

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

21 / 31

Premiers pas en C++

Oprations mathmatiques de base

Oprations mathmatiques de base

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

22 / 31

Premiers pas en C++

Oprateurs de comparaison

Oprateurs de comparaison

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

23 / 31

Premiers pas en C++

Oprations sur les chanes de caractres

Oprations sur les chanes de caractres

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

24 / 31

Premiers pas en C++

Structures de contrles (1/4)

Structures de contrles (1/4)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

25 / 31

Premiers pas en C++

Structures de contrles (2/4)

Structures de contrles (2/4)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

26 / 31

Premiers pas en C++

Structures de contrles (3/4)

Structures de contrles (3/4)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

27 / 31

Premiers pas en C++

Structures de contrles (4/4)

Structures de contrles (4/4)

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

28 / 31

Bibliographie

Bibliographie

Historique du langage C++ Quest-ce que le C++ ? Premiers pas en C++ Bibliographie

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

29 / 31

Bibliographie

Manel Tekaya ()

Le langage C++ (partie I)

21 avril 2011

30 / 31

Vous aimerez peut-être aussi