cpp.pdf - Cours de C/C Par Christian Casteyde Date de...

  • No School
  • AA 1
  • Bill_maxim
  • 383

This preview shows page 1 out of 383 pages.

Unformatted text preview: Cours de C/C++ Par Christian Casteyde Date de publication : 16 juillet 2008 Dernière mise à jour : 22 novembre 2012 Ce livre est un cours de programmation en C et C++. Il s'adresse aux personnes qui ont déjà quelques notions de programmation dans un langage quelconque. Les connaissances requises ne sont pas très élevées cependant : il n'est pas nécessaire d'avoir fait de grands programmes pour lire ce document. Il suffit d'avoir vu ce qu'est un programme et compris les grands principes de la programmation. Cours de C/C++ par Christian Casteyde Avant-propos................................................................................................................................................................ 8 I. Le langage C++........................................................................................................................................................9 1. Première approche du C/C++............................................................................................................................... 10 1.1. Les commentaires en C++............................................................................................................................11 1.2. Les types prédéfinis du C/C++..................................................................................................................... 12 1.3. Notation des valeurs..................................................................................................................................... 14 1.4. La définition des variables............................................................................................................................ 16 1.5. Instructions et opérations.............................................................................................................................. 18 1.6. Les fonctions................................................................................................................................................. 20 1.6.1. Définition des fonctions........................................................................................................................ 20 1.6.2. Appel des fonctions.............................................................................................................................. 21 1.6.3. Déclaration des fonctions..................................................................................................................... 22 1.6.4. Surcharge des fonctions....................................................................................................................... 22 1.6.5. Fonctions inline..................................................................................................................................... 23 1.6.6. Fonctions statiques............................................................................................................................... 24 1.6.7. Fonctions prenant un nombre variable de paramètres........................................................................ 24 1.7. La fonction main............................................................................................................................................26 1.8. Les fonctions d'entrée / sortie de base.........................................................................................................26 1.8.1. Généralités sur les flux d'entrée / sortie en C......................................................................................27 1.8.2. La fonction printf................................................................................................................................... 28 1.8.3. La fonction scanf.................................................................................................................................. 30 1.9. Exemple de programme complet..................................................................................................................31 2. Les structures de contrôle.....................................................................................................................................31 2.1. La structure conditionnelle if......................................................................................................................... 31 2.2. La boucle for................................................................................................................................................. 32 2.3. Le while......................................................................................................................................................... 33 2.4. Le do............................................................................................................................................................. 34 2.5. Le branchement conditionnel........................................................................................................................ 34 2.6. Le saut...........................................................................................................................................................35 2.7. Les commandes de rupture de séquence.................................................................................................... 36 3. Types avancés et classes de stockage................................................................................................................ 36 3.1. Structures de données et types complexes................................................................................................. 36 3.1.1. Les structures....................................................................................................................................... 36 3.1.2. Les unions.............................................................................................................................................38 3.1.3. Les énumérations................................................................................................................................. 40 3.1.4. Les champs de bits.............................................................................................................................. 40 3.1.5. Initialisation des structures et des tableaux......................................................................................... 41 3.1.6. Les alias de types................................................................................................................................ 42 3.1.7. Transtypages.........................................................................................................................................43 3.2. Les classes de stockage...............................................................................................................................43 4. Les pointeurs et références...................................................................................................................................46 4.1. Notion d'adresse............................................................................................................................................46 4.2. Notion de pointeur.........................................................................................................................................46 4.3. Déréférencement, indirection........................................................................................................................ 47 4.4. Notion de référence...................................................................................................................................... 48 4.5. Lien entre les pointeurs et les références.................................................................................................... 49 4.6. Passage de paramètres par variable ou par valeur..................................................................................... 50 4.6.1. Passage par valeur...............................................................................................................................50 4.6.2. Passage par variable............................................................................................................................ 50 4.6.3. Avantages et inconvénients des deux méthodes................................................................................. 51 4.6.4. Comment passer les paramètres par variable en C ?......................................................................... 51 4.6.5. Passage de paramètres par référence.................................................................................................51 4.7. Références et pointeurs constants et volatiles............................................................................................. 53 4.8. Arithmétique des pointeurs........................................................................................................................... 55 4.9. Utilisation des pointeurs avec les tableaux.................................................................................................. 56 4.9.1. Conversions des tableaux en pointeurs............................................................................................... 57 4.9.2. Paramètres de fonction de type tableau.............................................................................................. 58 4.10. Les chaînes de caractères : pointeurs et tableaux à la fois !..................................................................... 59 -2Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cours de C/C++ par Christian Casteyde 5. 6. 7. 8. 4.11. Allocation dynamique de mémoire.............................................................................................................. 59 4.11.1. Allocation dynamique de mémoire en C.............................................................................................60 4.11.2. Allocation dynamique en C++.............................................................................................................64 4.12. Pointeurs et références de fonctions.......................................................................................................... 66 4.12.1. Pointeurs de fonctions........................................................................................................................ 66 4.12.2. Références de fonctions..................................................................................................................... 67 4.13. Paramètres de la fonction main - ligne de commande...............................................................................68 4.14. DANGER..................................................................................................................................................... 69 Le préprocesseur C...............................................................................................................................................70 5.1. Définition........................................................................................................................................................70 5.2. Les commandes du préprocesseur.............................................................................................................. 70 5.2.1. Inclusion de fichier................................................................................................................................70 5.2.2. Constantes de compilation et remplacement de texte......................................................................... 70 5.2.3. Compilation conditionnelle.................................................................................................................... 71 5.2.4. Autres commandes............................................................................................................................... 72 5.3. Les macros....................................................................................................................................................73 5.4. Manipulation de chaînes de caractères dans les macros............................................................................ 75 5.5. Les trigraphes................................................................................................................................................76 Modularité des programmes et génération des binaires.......................................................................................76 6.1. Pourquoi faire une programmation modulaire ?........................................................................................... 76 6.2. Les différentes phases du processus de génération des exécutables......................................................... 77 6.3. Compilation séparée en C/C++.................................................................................................................... 78 6.4. Syntaxe des outils de compilation................................................................................................................ 78 6.4.1. Syntaxe des compilateurs.....................................................................................................................79 6.4.2. Syntaxe de make..................................................................................................................................79 6.5. Problèmes syntaxiques relatifs à la compilation séparée.............................................................................80 6.5.1. Déclaration des types........................................................................................................................... 81 6.5.2. Déclaration des variables..................................................................................................................... 81 6.5.3. Déclaration des fonctions..................................................................................................................... 81 6.5.4. Directives d'édition de liens.................................................................................................................. 81 Comment faire du code illisible ?.......................................................................................................................... 82 C++ : la couche objet............................................................................................................................................ 83 8.1. Généralités.................................................................................................................................................... 83 8.2. Extension de la notion de type du C............................................................................................................ 84 8.3. Déclaration de classes en C++.....................................................................................................................84 8.4. Encapsulation des données.......................................................................................................................... 88 8.5. Héritage......................................................................................................................................................... 89 8.6. Classes virtuelles.......................................................................................................................................... 92 8.7. Fonctions et classes amies...........................................................................................................................93 8.7.1. Fonctions amies....................................................................................................................................93 8.7.2. Classes amies.......................................................................................................................................93 8.8. Constructeurs et destructeurs....................................................................................................................... 94 8.8.1. Définition des constructeurs et des destructeurs................................................................................. 95 8.8.2. Constructeurs de copie.........................................................................................................................98 8.8.3. Utilisation des constructeurs dans les transtypages............................................................................ 99 8.9. Pointeur this................................................................................................................................................ 100 8.10. Données et fonctions membres statiques.................................................................................................101 8.10.1. Données membres statiques............................................................................................................ 102 8.10.2. Fonctions membres statiques...........................................................................................................103 8.11. Surcharge des opérateurs.........................................................................................................................104 8.11.1. Surcharge des opérateurs internes.................................................................................................. 104 8.11.2. Surcharge des opérateurs externes................................................................................................. 107 8.11.3. Opérateurs d'affectation.................................................................................................................... 109 8.11.4. Opérateurs de transtypage............................................................................................................... 110 8.11.5. Opérateurs de comparaison............................................................................................................. 111 8.11.6. Opérateurs d'incrémentation et de décrémentation..........................................................................111 8.11.7. Opérateur fonctionnel........................................................................................................................112 8.11.8. Opérateurs d'indirection et de déréférencement.............................................................................. 114 -3Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cours de C/C++ par Christian Casteyde 8.11.9. Opérateurs d'allocation dynamique de mémoire.............................................................................. 114 8.12. Des entrées - sorties simplifiées...............................................................................................................120 8.13. Méthodes virtuelles...................................................................................
View Full Document

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture