Table des matières
1 Généralités sur la programmation 7
1.1 Du fichier source à l’exécutable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 La compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 L’interprétation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3 Langages interprétés et langages compilés . . . . . . . . . . . . . . . . . . . . 7
1.2 Le typage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Qu’est ce que le typage ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Langages non typés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3 Typage statique et typage dynamique . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Typage explicite et typage implicite . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.5 Typage et C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 La compilation séparée et l’édition de liens . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Dans quelle catégorie se situe le C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Les bases en C++ 11
2.1 Mes premiers programmes en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Un programme qui ne fait rien ou presque . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Le programme Bonjour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Types prédéfinis, variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 L’assignation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 Définition et appel de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Valeur de retour et return . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.3 Le cas particulier de la fonction main . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.4 Passage des arguments par valeurs ou par références . . . . . . . . . . . . . . 17
2.3.5 Surdéfinition des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.6 Prototypes de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1 Expressions arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.2 Expressions relationnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.3 Expressions logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.4 Les assignations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 Les structures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.1 L’instruction if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 Le switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5.3 La boucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4