11406-programmez-avec-le-langage-c

Telechargé par Paul Henri Kouakou
Programmez avec le
langage C++
Par Mathieu Nebra (Mateo21)
et Matthieu Schaller (Nanoc)
www.openclassrooms.com
Licence Creative Commons 6 2.0
Dernière mise à jour le 7/10/2013
Sommaire
2Sommaire ...........................................................................................................................................
9Lire aussi ............................................................................................................................................
11 Programmez avec le langage C++ ...................................................................................................
12Partie 1 : [Théorie] Découverte de la programmation en C++ ...........................................................
12Qu'est-ce que le C++ ? ...................................................................................................................................................
12Les programmes .......................................................................................................................................................................................................
13Les langages de programmation ...............................................................................................................................................................................
14Le C++ face aux autres langages .............................................................................................................................................................................
14Le C++ : langage de haut ou de bas niveau ? ..........................................................................................................................................................
16Résumé des forces du C++ ......................................................................................................................................................................................
16Petit aperçu du C++ ..................................................................................................................................................................................................
16La petite histoire du C++ ...........................................................................................................................................................................................
17De l'Algol au C++ ......................................................................................................................................................................................................
17Le concepteur ............................................................................................................................................................................................................
17En résumé .................................................................................................................................................................................................................
19Les logiciels nécessaires pour programmer ...................................................................................................................
19Les outils nécessaires au programmeur ...................................................................................................................................................................
19Les projets .................................................................................................................................................................................................................
19Choisissez votre IDE .................................................................................................................................................................................................
20Code::Blocks (Windows, Mac OS, Linux) ..................................................................................................................................................................
20Télécharger Code::Blocks .........................................................................................................................................................................................
22Créer un nouveau projet ............................................................................................................................................................................................
25Visual C++ (Windows seulement) .............................................................................................................................................................................
26Installation .................................................................................................................................................................................................................
27Créer un nouveau projet ............................................................................................................................................................................................
29Ajouter un nouveau fichier source .............................................................................................................................................................................
30La fenêtre principale de Visual ..................................................................................................................................................................................
31Xcode (Mac OS seulement) ......................................................................................................................................................................................
31Xcode, où es-tu ? ......................................................................................................................................................................................................
32Lancement ................................................................................................................................................................................................................
32Nouveau projet ..........................................................................................................................................................................................................
34Compilation ...............................................................................................................................................................................................................
36En résumé .................................................................................................................................................................................................................
37Votre premier programme ...............................................................................................................................................
37Le monde merveilleux de la console .........................................................................................................................................................................
37Les programmes graphiques ....................................................................................................................................................................................
37Les programmes console ..........................................................................................................................................................................................
38Notre première cible : les programmes console ........................................................................................................................................................
38Création et lancement d'un premier projet ................................................................................................................................................................
38Création d'un projet ...................................................................................................................................................................................................
40Lancement du programme ........................................................................................................................................................................................
41Explications sur ce premier code source ..................................................................................................................................................................
41include .......................................................................................................................................................................................................................
42using namespace ......................................................................................................................................................................................................
42int main() ...................................................................................................................................................................................................................
43cout ............................................................................................................................................................................................................................
44return .........................................................................................................................................................................................................................
45Commentez et mettez en forme vos programmes ! ..................................................................................................................................................
45Les différents types de commentaires .......................................................................................................................................................................
45Commentons notre code source ! .............................................................................................................................................................................
46Mettre son code en forme .........................................................................................................................................................................................
46En résumé .................................................................................................................................................................................................................
47Utiliser la mémoire ...........................................................................................................................................................
48Qu'est-ce qu'une variable ? .......................................................................................................................................................................................
48Les noms de variables ..............................................................................................................................................................................................
49Les types de variables ...............................................................................................................................................................................................
50Déclarer une variable ................................................................................................................................................................................................
53Le cas des strings .....................................................................................................................................................................................................
54Une astuce pour gagner de la place .........................................................................................................................................................................
54Déclarer sans initialiser .............................................................................................................................................................................................
55Afficher la valeur d'une variable ................................................................................................................................................................................
57Les références ...........................................................................................................................................................................................................
59En résumé .................................................................................................................................................................................................................
59Une vraie calculatrice ......................................................................................................................................................
60Demander des informations à l'utilisateur .................................................................................................................................................................
60Lecture depuis la console .........................................................................................................................................................................................
61Une astuce pour les chevrons ...................................................................................................................................................................................
61D'autres variables ......................................................................................................................................................................................................
62Le problème des espaces .........................................................................................................................................................................................
63Demander d'abord la valeur de pi .............................................................................................................................................................................
64Modifier des variables ...............................................................................................................................................................................................
64Changer le contenu d'une variable ............................................................................................................................................................................
66Une vraie calculatrice de base ! ................................................................................................................................................................................
67Les constantes ..........................................................................................................................................................................................................
68Déclarer une constante .............................................................................................................................................................................................
2/613
www.openclassrooms.com
68Un premier exercice ..................................................................................................................................................................................................
70Les raccourcis ...........................................................................................................................................................................................................
70L'incrémentation ........................................................................................................................................................................................................
71La décrémentation ....................................................................................................................................................................................................
71Les autres opérations ................................................................................................................................................................................................
72Encore plus de maths ! .............................................................................................................................................................................................
72L'en-tête cmath ..........................................................................................................................................................................................................
73Quelques autres fonctions présentes dans cmath ....................................................................................................................................................
74Le cas de la fonction puissance ................................................................................................................................................................................
75En résumé .................................................................................................................................................................................................................
75Les structures de contrôle ...............................................................................................................................................
76Les conditions ...........................................................................................................................................................................................................
76La condition if ............................................................................................................................................................................................................
80La condition switch ....................................................................................................................................................................................................
81Booléens et combinaisons de conditions ..................................................................................................................................................................
82Les booléens .............................................................................................................................................................................................................
82Combiner des conditions ...........................................................................................................................................................................................
83Les boucles ...............................................................................................................................................................................................................
84La boucle while ..........................................................................................................................................................................................................
85La boucle do ... while .................................................................................................................................................................................................
86La boucle for ..............................................................................................................................................................................................................
87En résumé .................................................................................................................................................................................................................
87Découper son programme en fonctions ..........................................................................................................................
88Créer et utiliser une fonction .....................................................................................................................................................................................
88Présentation des fonctions ........................................................................................................................................................................................
89Définir une fonction ...................................................................................................................................................................................................
90Une fonction toute simple ..........................................................................................................................................................................................
91Appeler une fonction .................................................................................................................................................................................................
91Plusieurs paramètres ................................................................................................................................................................................................
92Pas d'arguments .......................................................................................................................................................................................................
92Des fonctions qui ne renvoient rien ...........................................................................................................................................................................
93Quelques exemples ..................................................................................................................................................................................................
93Le carré .....................................................................................................................................................................................................................
94Réutiliser la même fonction .......................................................................................................................................................................................
94Des variables avec le même nom .............................................................................................................................................................................
95Une fonction à deux arguments ................................................................................................................................................................................
96Passage par valeur et passage par référence ..........................................................................................................................................................
96Passage par valeur ...................................................................................................................................................................................................
98Passage par référence ..............................................................................................................................................................................................
100Avancé : Le passage par référence constante ........................................................................................................................................................
101Utiliser plusieurs fichiers .........................................................................................................................................................................................
101Les fichiers nécessaires ..........................................................................................................................................................................................
105Déclarer la fonction dans les fichiers ......................................................................................................................................................................
108Documenter son code .............................................................................................................................................................................................
109Des valeurs par défaut pour les arguments ............................................................................................................................................................
109Les valeurs par défaut .............................................................................................................................................................................................
111Cas particuliers, attention danger ............................................................................................................................................................................
113Règles à retenir .......................................................................................................................................................................................................
113En résumé ...............................................................................................................................................................................................................
113Les tableaux ..................................................................................................................................................................
114Les tableaux statiques .............................................................................................................................................................................................
114Un exemple d'utilisation ...........................................................................................................................................................................................
115Déclarer un tableau statique ....................................................................................................................................................................................
116Accéder aux éléments d'un tableau ........................................................................................................................................................................
117Parcourir un tableau ................................................................................................................................................................................................
118Un petit exemple ......................................................................................................................................................................................................
119Les tableaux et les fonctions ...................................................................................................................................................................................
120Les tableaux dynamiques ........................................................................................................................................................................................
120Déclarer un tableau dynamique ..............................................................................................................................................................................
122Accéder aux éléments d'un tableau ........................................................................................................................................................................
122Changer la taille ......................................................................................................................................................................................................
124Retour sur l'exercice ................................................................................................................................................................................................
125Les vector et les fonctions .......................................................................................................................................................................................
126Les tableaux multi-dimensionnels ...........................................................................................................................................................................
127Déclaration d'un tableau multi-dimensionnel ...........................................................................................................................................................
127Accéder aux éléments .............................................................................................................................................................................................
127Aller plus loin ...........................................................................................................................................................................................................
128Les strings comme tableaux ...................................................................................................................................................................................
129Accéder aux lettres ..................................................................................................................................................................................................
129Les fonctions ...........................................................................................................................................................................................................
130En résumé ...............................................................................................................................................................................................................
130Lire et modifier des fichiers ...........................................................................................................................................
131Écrire dans un fichier ..............................................................................................................................................................................................
131L'en-tête fstream .....................................................................................................................................................................................................
131Ouvrir un fichier en écriture .....................................................................................................................................................................................
132Écrire dans un flux ...................................................................................................................................................................................................
133Les différents modes d'ouverture ............................................................................................................................................................................
134Lire un fichier ...........................................................................................................................................................................................................
134Ouvrir un fichier en lecture… ...................................................................................................................................................................................
134… et le lire ...............................................................................................................................................................................................................
135Lire un fichier en entier ............................................................................................................................................................................................
136Quelques astuces ...................................................................................................................................................................................................
136Fermer prématurément un fichier ............................................................................................................................................................................
Sommaire 3/613
www.openclassrooms.com
137Le curseur dans le fichier ........................................................................................................................................................................................
138Connaître sa position ..............................................................................................................................................................................................
139Se déplacer .............................................................................................................................................................................................................
139Connaître la taille d'un fichier ..................................................................................................................................................................................
140En résumé ...............................................................................................................................................................................................................
140TP : le mot mystère .......................................................................................................................................................
141Préparatifs et conseils .............................................................................................................................................................................................
141Principe du jeu « Le mot mystère » .........................................................................................................................................................................
142Quelques conseils pour bien démarrer ...................................................................................................................................................................
143Un peu d'aide pour mélanger les lettres ..................................................................................................................................................................
145Correction ................................................................................................................................................................................................................
145Le code ....................................................................................................................................................................................................................
146Des explications ......................................................................................................................................................................................................
147Téléchargement ......................................................................................................................................................................................................
147Aller plus loin ...........................................................................................................................................................................................................
148Les pointeurs .................................................................................................................................................................
149Une question d'adresse ...........................................................................................................................................................................................
150Afficher l'adresse .....................................................................................................................................................................................................
151Les pointeurs ...........................................................................................................................................................................................................
151Déclarer un pointeur ................................................................................................................................................................................................
153Stocker une adresse ...............................................................................................................................................................................................
154Afficher l'adresse .....................................................................................................................................................................................................
155Accéder à la valeur pointée .....................................................................................................................................................................................
155Récapitulatif de la notation ......................................................................................................................................................................................
156L'allocation dynamique ............................................................................................................................................................................................
156La gestion automatique de la mémoire ...................................................................................................................................................................
156Allouer un espace mémoire ....................................................................................................................................................................................
158Libérer la mémoire ..................................................................................................................................................................................................
159Un exemple complet ...............................................................................................................................................................................................
160Quand utiliser des pointeurs ...................................................................................................................................................................................
160Partager une variable ..............................................................................................................................................................................................
161Choisir parmi plusieurs éléments ............................................................................................................................................................................
162En résumé ...............................................................................................................................................................................................................
163Partie 2 : [Théorie] La Programmation Orientée Objet ....................................................................
164Introduction : la vérité sur les strings enfin dévoilée .....................................................................................................
164Des objets... pour quoi faire ? .................................................................................................................................................................................
164Ils sont beaux, ils sont frais mes objets ...................................................................................................................................................................
164Imaginez... un objet .................................................................................................................................................................................................
167L'horrible secret du type string ................................................................................................................................................................................
167Pour un ordinateur, les lettres n'existent pas ..........................................................................................................................................................
168Les textes sont des tableaux de char ......................................................................................................................................................................
169Créer et utiliser des objets string .............................................................................................................................................................................
169Créer un objet string ................................................................................................................................................................................................
171Concaténation de chaînes .......................................................................................................................................................................................
172Comparaison de chaînes ........................................................................................................................................................................................
172Opérations sur les string .........................................................................................................................................................................................
172Attributs et méthodes ..............................................................................................................................................................................................
173Quelques méthodes utiles du type string ................................................................................................................................................................
176En résumé ...............................................................................................................................................................................................................
176Les classes (Partie 1/2) .................................................................................................................................................
177Créer une classe .....................................................................................................................................................................................................
178Créer une classe, oui mais laquelle ? .....................................................................................................................................................................
178Bon, on la crée cette classe ? .................................................................................................................................................................................
179Ajout de méthodes et d'attributs ..............................................................................................................................................................................
181Droits d'accès et encapsulation ...............................................................................................................................................................................
183Les droits d'accès ....................................................................................................................................................................................................
185L'encapsulation .......................................................................................................................................................................................................
186Séparer prototypes et définitions .............................................................................................................................................................................
187Personnage.h ..........................................................................................................................................................................................................
187Personnage.cpp ......................................................................................................................................................................................................
191main.cpp ..................................................................................................................................................................................................................
191En résumé ...............................................................................................................................................................................................................
193Les classes (Partie 2/2) .................................................................................................................................................
193Constructeur et destructeur .....................................................................................................................................................................................
193Le constructeur ........................................................................................................................................................................................................
198Le destructeur .........................................................................................................................................................................................................
199Les méthodes constantes .......................................................................................................................................................................................
200Associer des classes entre elles .............................................................................................................................................................................
200La classe Arme ........................................................................................................................................................................................................
202Adapter la classe Personnage pour utiliser la classe Arme ....................................................................................................................................
205Action ! ....................................................................................................................................................................................................................
205Prototype et include .................................................................................................................................................................................................
205Implémentation ........................................................................................................................................................................................................
205Appel de afficherEtat dans le main() .......................................................................................................................................................................
207Méga schéma résumé .............................................................................................................................................................................................
208En résumé ...............................................................................................................................................................................................................
209La surcharge d'opérateurs ............................................................................................................................................
209Petits préparatifs .....................................................................................................................................................................................................
209Qu'est-ce que c'est ? ...............................................................................................................................................................................................
209La classe Duree pour nos exemples .......................................................................................................................................................................
211Les opérateurs de comparaison ..............................................................................................................................................................................
211Mode d'utilisation .....................................................................................................................................................................................................
Sommaire 4/613
www.openclassrooms.com
212L'implémentation de l'opérateur == .........................................................................................................................................................................
214L'opérateur != ..........................................................................................................................................................................................................
215L'opérateur < ...........................................................................................................................................................................................................
216Les autres opérateurs de comparaison ...................................................................................................................................................................
216Les opérateurs arithmétiques ..................................................................................................................................................................................
217Appliquons les vieilles recettes ...............................................................................................................................................................................
218Les opérateurs raccourcis .......................................................................................................................................................................................
219Quelques tests ........................................................................................................................................................................................................
221Retour à l'opérateur + ..............................................................................................................................................................................................
222Télécharger le projet ...............................................................................................................................................................................................
222Bonus track #1 ........................................................................................................................................................................................................
223Bonus track #2 ........................................................................................................................................................................................................
223Les autres opérateurs arithmétiques .......................................................................................................................................................................
224Les opérateurs de flux .............................................................................................................................................................................................
224Définir ses propres opérateurs pour cout ................................................................................................................................................................
225Implémentation d'operator<< ..................................................................................................................................................................................
226Ouf ! Maintenant dans le main(), que du bonheur ! .................................................................................................................................................
227En résumé ...............................................................................................................................................................................................................
228TP: La POO en pratique avec ZFraction .......................................................................................................................
228Préparatifs et conseils .............................................................................................................................................................................................
228Description de la classe ZFraction ..........................................................................................................................................................................
229Créer un nouveau projet ..........................................................................................................................................................................................
229Le code de base des fichiers ..................................................................................................................................................................................
231Choix des attributs de la classe ..............................................................................................................................................................................
231Les constructeurs ....................................................................................................................................................................................................
231Les opérateurs ........................................................................................................................................................................................................
232Simplifier les fractions .............................................................................................................................................................................................
232Correction ................................................................................................................................................................................................................
233Les constructeurs ....................................................................................................................................................................................................
233Afficher une fraction ................................................................................................................................................................................................
234L'opérateur d'addition ..............................................................................................................................................................................................
235L'opérateur de multiplication ...................................................................................................................................................................................
235Les opérateurs de comparaison ..............................................................................................................................................................................
236Les opérateurs d'ordre ............................................................................................................................................................................................
238Simplifier les fractions .............................................................................................................................................................................................
239Aller plus loin ...........................................................................................................................................................................................................
240Classes et pointeurs ......................................................................................................................................................
241Pointeur d'une classe vers une autre classe ...........................................................................................................................................................
242Gestion de l'allocation dynamique ...........................................................................................................................................................................
243Allocation de mémoire pour l'objet ..........................................................................................................................................................................
243Désallocation de mémoire pour l'objet ....................................................................................................................................................................
244N'oubliez pas que m_arme est maintenant un pointeur ! ........................................................................................................................................
245Le pointeur this ........................................................................................................................................................................................................
246Retour sur le constructeur de copie ........................................................................................................................................................................
246Le problème ............................................................................................................................................................................................................
248Création du constructeur de copie ..........................................................................................................................................................................
250Le constructeur de copie une fois terminé ..............................................................................................................................................................
251L'opérateur d'affectation ..........................................................................................................................................................................................
252En résumé ...............................................................................................................................................................................................................
252L'héritage .......................................................................................................................................................................
253Exemple d'héritage simple ......................................................................................................................................................................................
253Comment reconnaître un héritage ? ........................................................................................................................................................................
253Notre exemple : la classe Personnage ...................................................................................................................................................................
254La classe Guerrier hérite de la classe Personnage ................................................................................................................................................
256La classe Magicien hérite aussi de Personnage .....................................................................................................................................................
258La dérivation de type ...............................................................................................................................................................................................
260Héritage et constructeurs ........................................................................................................................................................................................
261Appeler le constructeur de la classe mère ..............................................................................................................................................................
261Transmission de paramètres ...................................................................................................................................................................................
262Schéma résumé ......................................................................................................................................................................................................
263La portée protected .................................................................................................................................................................................................
263Le masquage ..........................................................................................................................................................................................................
263Une fonction de la classe mère ...............................................................................................................................................................................
264La fonction est héritée dans les classes filles .........................................................................................................................................................
265Le masquage ..........................................................................................................................................................................................................
266Économiser du code ...............................................................................................................................................................................................
267Le démasquage ......................................................................................................................................................................................................
267En résumé ...............................................................................................................................................................................................................
267Le polymorphisme .........................................................................................................................................................
268La résolution des liens ............................................................................................................................................................................................
269La résolution statique des liens ...............................................................................................................................................................................
270La résolution dynamique des liens ..........................................................................................................................................................................
270Les fonctions virtuelles ............................................................................................................................................................................................
270Déclarer une méthode virtuelle… ............................................................................................................................................................................
271… et utiliser une référence ......................................................................................................................................................................................
272Les méthodes spéciales ..........................................................................................................................................................................................
272Le cas des constructeurs ........................................................................................................................................................................................
273Le cas du destructeur ..............................................................................................................................................................................................
273Le code amélioré .....................................................................................................................................................................................................
275Les collections hétérogènes ....................................................................................................................................................................................
275Le retour des pointeurs ...........................................................................................................................................................................................
275Utiliser la collection .................................................................................................................................................................................................
277Les fonctions virtuelles pures ..................................................................................................................................................................................
Sommaire 5/613
www.openclassrooms.com
1 / 612 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !