Le C++ J´erˆome Novak Introduction Le langage C++: Motivations Les cours comment c¸a marche? Quelques bases Les classes Syntaxe Les types Les fonctions J´erˆome Novak Les instructions Pointeurs Jerome.Novak@obspm.fr Entr´ees/Sorties http://luth.obspm.fr/minisite.php?nom=Novak Constantes Les classes Laboratoire Univers et Th´eories (LUTH) Les membres CNRS / Observatoire de Paris / Universit´e Paris DiderotAcc`es Surcharges const H´eritage H´ simple e H´er. multiple Master 2 ann´ee recherche, Septembre 2009 Polymorphisme “En pratique” R´ef´erences Entr´ees/Sorties Constantes Les classes (fin?) Compl´ements C++ et FORTRAN Espaces de noms Variables statiques Conversions Pointeurs de fonctions Mod`eles Biblioth`equesOutline Le C++ J´erˆome Novak 1 Introduction : Pourquoi le C++? Introduction Motivations Les cours Quelques bases 2 La syntaxe (premiers pas) Les classes Syntaxe Les types Les fonctions 3 Les classes : orientation objet Les instructions Pointeurs Entr´ees/Sorties Constantes ´4 Heritage et polymorphisme Les classes Les membres Acc`es Surcharges 5 “En pratique” const H´eritage H´ simple 6 Pour aller plus loin ...H´er. multiple Polymorphisme “En pratique” R´ef´erences Entr´ees/Sorties Constantes Les classes (fin?) Compl´ements C++ et FORTRAN Espaces de noms Variables statiques Conversions Pointeurs de fonctions Mod`eles Biblioth`equesOutline Le C++ J´erˆome Novak 1 Introduction : Pourquoi le C++? Introduction Motivations Les cours Quelques bases 2 La syntaxe ...
Le C++
J´erˆome Novak
Introduction Le langage C++:
Motivations
Les cours
comment c¸a marche?
Quelques bases
Les classes
Syntaxe
Les types
Les fonctions J´erˆome Novak
Les instructions
Pointeurs Jerome.Novak@obspm.fr
Entr´ees/Sorties http://luth.obspm.fr/minisite.php?nom=Novak
Constantes
Les classes
Laboratoire Univers et Th´eories (LUTH)
Les membres
CNRS / Observatoire de Paris / Universit´e Paris DiderotAcc`es
Surcharges
const
H´eritage
H´ simple
e
H´er. multiple Master 2 ann´ee recherche, Septembre 2009
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesOutline
Le C++
J´erˆome Novak
1 Introduction : Pourquoi le C++?
Introduction
Motivations
Les cours
Quelques bases 2 La syntaxe (premiers pas)
Les classes
Syntaxe
Les types
Les fonctions 3 Les classes : orientation objet
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes ´4 Heritage et polymorphisme
Les classes
Les membres
Acc`es
Surcharges 5 “En pratique”
const
H´eritage
H´ simple
6 Pour aller plus loin ...H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesOutline
Le C++
J´erˆome Novak
1 Introduction : Pourquoi le C++?
Introduction
Motivations
Les cours
Quelques bases 2 La syntaxe (premiers pas)
Les classes
Syntaxe
Les types
Les fonctions 3 Les classes : orientation objet
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes ´4 Heritage et polymorphisme
Les classes
Les membres
Acc`es
Surcharges 5 “En pratique”
const
H´eritage
H´ simple
6 Pour aller plus loin ...H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesOutline
Le C++
J´erˆome Novak
1 Introduction : Pourquoi le C++?
Introduction
Motivations
Les cours
Quelques bases 2 La syntaxe (premiers pas)
Les classes
Syntaxe
Les types
Les fonctions 3 Les classes : orientation objet
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes ´4 Heritage et polymorphisme
Les classes
Les membres
Acc`es
Surcharges 5 “En pratique”
const
H´eritage
H´ simple
6 Pour aller plus loin ...H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesOutline
Le C++
J´erˆome Novak
1 Introduction : Pourquoi le C++?
Introduction
Motivations
Les cours
Quelques bases 2 La syntaxe (premiers pas)
Les classes
Syntaxe
Les types
Les fonctions 3 Les classes : orientation objet
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes ´4 Heritage et polymorphisme
Les classes
Les membres
Acc`es
Surcharges 5 “En pratique”
const
H´eritage
H´ simple
6 Pour aller plus loin ...H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesOutline
Le C++
J´erˆome Novak
1 Introduction : Pourquoi le C++?
Introduction
Motivations
Les cours
Quelques bases 2 La syntaxe (premiers pas)
Les classes
Syntaxe
Les types
Les fonctions 3 Les classes : orientation objet
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes ´4 Heritage et polymorphisme
Les classes
Les membres
Acc`es
Surcharges 5 “En pratique”
const
H´eritage
H´ simple
6 Pour aller plus loin ...H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesOutline
Le C++
J´erˆome Novak
1 Introduction : Pourquoi le C++?
Introduction
Motivations
Les cours
Quelques bases 2 La syntaxe (premiers pas)
Les classes
Syntaxe
Les types
Les fonctions 3 Les classes : orientation objet
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes ´4 Heritage et polymorphisme
Les classes
Les membres
Acc`es
Surcharges 5 “En pratique”
const
H´eritage
H´ simple
6 Pour aller plus loin ...H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesIntroduction
Le C++
J´erˆome Novak
Introduction
Motivations
Les cours
Quelques bases
Les classes 1 Pourquoi le C++?
Syntaxe
Les types ´2 Etat des lieuxLes fonctions
Les instructions
Pointeurs
3 Quelques notions pour d´emarrerEntr´ees/Sorties
Constantes
4Les classes Un avant-goutˆ des classes
Les membres
Acc`es
Surcharges
const
H´eritage
H´ simple
H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`eques´ ˆInteret du C++?
Le C++
J´erˆome Novak langage orient´e objet
Introduction gestion dynamique de la m´emoire
Motivations
Les cours ´ecriture du code tr`es rigoureuse
Quelques bases
Les classes
possibilit´e d’incorporer des routines en C ou fortran
Syntaxe
Les types p´e de compiler les programmes C, avec leLes fonctions
Les instructions
compilateur C++Pointeurs
Entr´ees/Sorties
Constantes
compilateurs disponibles et fiables (mˆeme gratuits!)Les classes
Les membres
Acc`es norme respect´ee
Surcharges
const nombreuses biblioth`eques
H´eritage
H´ simple existence d’outils pour le d´eveloppement, l’optimisation, ...
H´er. multiple
Polymorphisme (Purify/Electric Fence/Valgrind, Doxygen,...)
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`equesPour et contre...
Le C++
J´erˆome Novak
⇒ Pour pouvoir g´erer les codes complexes
Introduction
⇒ Pour travailler `a plusieurs sur un mˆeme projetMotivations
Les cours
(collaborateurs, visiteurs, ...)Quelques bases
Les classes
⇒ Pour r´eduire le temps de d´eveloppement, de correction et
Syntaxe
Les types de tests
Les fonctions
Les instructions
Pointeurs
Entr´ees/Sorties
Constantes Mais
Les classes
Apprentissage long
Les membres
Acc`es et complexeSurcharges
const
L´eg`ere perte en
H´eritage
H´ simple vitesse d’ex´ecution
H´er. multiple
Polymorphisme
“En pratique”
R´ef´erences
Entr´ees/Sorties
Constantes
Les classes
(fin?)
Compl´ements
C++ et
FORTRAN
Espaces de noms
Variables
statiques
Conversions
Pointeurs de
fonctions
Mod`eles
Biblioth`eques