Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2
Améliorations de C++
2
Plan
~ Introduction
Introduction
4
Introduction
~ C++ = C – E + S +P
f C : Norme ANSI de C
f E : Ecarts par rapport à la norme de C C++
f S : Spécificités non objet de C++
f P : Possibilités objets de C++ P
S
E
C
Historique de C++
~ C++ a été développé dans les labos AT&T BELL au début des années
6
Ecarts/C norme ANSI
~ Constantes
Forme1 Forme 2
Int fonct(u,v) Int fonct(int u,int v)
Int u; {
Int v; …
{ }
…
}
8
Ecarts / C norme ANSI
Prototypes des fonctions
10
Ecarts / C norme ANSI
Porté des Constantes
~ Constantes locales
f Pas de différence entre C et C++ : porté locale au bloc ou à la fonction
~ Constantes globales
f En C, la porté de la constante n’est pas limitée au fichier qui la contient
f En C++, la porté d’une constante est limitée au fichier source qui la contient
11
~ Commentaire
~ Nouvelles primitives d’E/S cin, cout
~ Déclaration des variables
~ Passage des paramètres par référence
~ Surdéfinition des fonctions
~ Arguments par défaut
~ Fonctions en ligne
~ Déclaration des structures
~ Nouveaux opérateurs new, delete
12
Apports non objets de C++
Commentaire
~ Commentaire de C
/* commentaire classique de C
qui s’étend sur plusieurs lignes */
13
~ Caractéristiques
f Simplicité: Pas besoin d’indiquer le format des
variables
f Module objet optimal
f Extensibilité à d’autres types
14
Apports non objets de C++
Nouvelles primitives d’E/S cin, cout
~ Syntaxe
cas)
15
f Exemple
16
Apports non objets de C++
Passage des paramètres par référence
~ En C, un seul mode de passage de paramètres: par valeur
fonction
Appel fonct(param,…);
17
18
Apports non objets de C++
Arguments par défaut
19
~ Exemple :
inline max(int a, int b) {return (a>b? a:b);}
Avec les macros
#define max(a,b) ((a)>(b)?(a):(b))
20
Apports non objets de C++
Fonctions en ligne
f Plus de rapidité
21
22
Apports non objets de C++
Nouveaux opérateurs new, delete
f Exemple
Int *pi,*pti;
d’entier
23
dynamiques
f Exemple
int *pi,*pti;
pi = new int;
delete pi;
24