Avant Propos Avant-propos Le Langage C++ I. Le langage C++ ...
Afin de réduire les risques d'erreurs de programmation, les langages comme le C
/C++ donnent un type à chaque variable (par exemple : pomme et banane). Lors
de la ...... Le lecteur pourra essayer de corriger ces petits défauts à titre d'exercice
, afin de s'assurer que les notions de pointeur sont bien assimilées. Rappelons ...
Part of the document
[pic] Avant Propos
Avant-propos
Le Langage C++
I. Le langage C++
Chapitre 1
1. Première approche du C/C++
1.1. Les commentaires en C++
1.2. Les types prédéfinis du C/C++
1.3. Notation des valeurs
1.4. La définition des variables
1.5. Instructions et opérations
1.6. Les fonctions
1.6.1. Définition des fonctions
1.6.2. Appel des fonctions
1.6.3. Déclaration des fonctions
1.6.4. Surcharge des fonctions
1.6.5. Fonctions inline
1.6.6. Fonctions statiques
1.6.7. Fonctions prenant un nombre variable de paramètres
1.7. La fonction main
1.8. Les fonctions d'entrée / sortie de base
1.8.1. Généralités sur les flux d'entrée / sortie en C
1.8.2. La fonction printf
1.8.3. La fonction scanf
1.9. Exemple de programme complet
Chapitre 2
2. Les structures de contrôle
2.1. La structure conditionnelle if
2.2. La boucle for
2.3. Le while
2.4. Le do
2.5. Le branchement conditionnel
2.6. Le saut
2.7. Les commandes de rupture de séquence
Chapitre 3
3. Types avancés et classes de stockage
3.1. Structures de données et types complexes
3.1.1. Les structures
3.1.2. Les unions
3.1.3. Les énumérations
3.1.4. Les champs de bits
3.1.5. Initialisation des structures et des tableaux
3.1.6. Les alias de types
3.1.7. Transtypages
3.2. Les classes de stockage
Chapitre 4
4. Les pointeurs et références
4.1. Notion d'adresse
4.2. Notion de pointeur
4.3. Déréférencement, indirection
4.4. Notion de référence
4.5. Lien entre les pointeurs et les références
4.6. Passage de paramètres par variable ou par valeur
4.6.1. Passage par valeur
4.6.2. Passage par variable
4.6.3. Avantages et inconvénients des deux méthodes
4.6.4. Comment passer les paramètres par variable en C ?
4.6.5. Passage de paramètres par référence
4.7. Références et pointeurs constants et volatiles
4.8. Arithmétique des pointeurs
4.9. Utilisation des pointeurs avec les tableaux
4.9.1. Conversions des tableaux en pointeurs
4.9.2. Paramètres de fonction de type tableau
4.10. Les chaînes de caractères : pointeurs et tableaux à la fois !
4.11. Allocation dynamique de mémoire
4.11.1. Allocation dynamique de mémoire en C
4.11.2. Allocation dynamique en C++
4.12. Pointeurs et références de fonctions
4.12.1. Pointeurs de fonctions
4.12.2. Références de fonctions
4.13. Paramètres de la fonction main - ligne de commande
4.14. DANGER
Chapitre 5
5. Le préprocesseur C
5.1. Définition
5.2. Les commandes du préprocesseur
5.2.1. Inclusion de fichier
5.2.2. Constantes de compilation et remplacement de texte
5.2.3. Compilation conditionnelle
5.2.4. Autres commandes
5.3. Les macros
5.4. Manipulation de chaînes de caractères dans les macros
5.5. Les trigraphes
Chapitre 6
6. Modularité des programmes et génération des binaires
6.1. Pourquoi faire une programmation modulaire ?
6.2. Les différentes phases du processus de génération des exécutables
6.3. Compilation séparée en C/C++
6.4. Syntaxe des outils de compilation
6.4.1. Syntaxe des compilateurs
6.4.2. Syntaxe de make
6.5. Problèmes syntaxiques relatifs à la compilation séparée
6.5.1. Déclaration des types
6.5.2. Déclaration des variables
6.5.3. Déclaration des fonctions
6.5.4. Directives d'édition de liens
Chapitre 7
7. Comment faire du code illisible ?
Chapitre 8
8. C++ : la couche objet
8.1. Généralités
8.2. Extension de la notion de type du C
8.3. Déclaration de classes en C++
8.4. Encapsulation des données
8.5. Héritage
8.6. Classes virtuelles
8.7. Fonctions et classes amies
8.7.1. Fonctions amies
8.7.2. Classes amies
8.8. Constructeurs et destructeurs
8.8.1. Définition des constructeurs et des destructeurs
8.8.2. Constructeurs de copie
8.8.3. Utilisation des constructeurs dans les transtypages
8.9. Pointeur this
8.10. Données et fonctions membres statiques
8.10.1. Données membres statiques
8.10.2. Fonctions membres statiques
8.11. Surcharge des opérateurs
8.11.1. Surcharge des opérateurs internes
8.11.2. Surcharge des opérateurs externes
8.11.3. Opérateurs d'affectation
8.11.4. Opérateurs de transtypage
8.11.5. Opérateurs de comparaison
8.11.6. Opérateurs d'incrémentation et de décrémentation
8.11.7. Opérateur fonctionnel
8.11.8. Opérateurs d'indirection et de déréférencement
8.11.9. Opérateurs d'allocation dynamique de mémoire
8.12. Des entrées - sorties simplifiées
8.13. Méthodes virtuelles
8.14. Dérivation
8.15. Méthodes virtuelles pures - Classes abstraites
8.16. Pointeurs sur les membres d'une classe
Chapitre 9
9. Les exceptions en C++
9.1. Lancement et récupération d'une exception
9.2. Remontée des exceptions
9.3. Liste des exceptions autorisées pour une fonction
9.4. Hiérarchie des exceptions
9.5. Exceptions dans les constructeurs
Chapitre 10
10. Identification dynamique des types
10.1. Identification dynamique des types
10.1.1. L'opérateur typeid
10.1.2. La classe type_info
10.2. Transtypages C++
10.2.1. Transtypage dynamique
10.2.2. Transtypage statique
10.2.3. Transtypage de constance et de volatilité
10.2.4. Réinterprétation des données
Chapitre 11
11. Les espaces de nommage
11.1. Définition des espaces de nommage
11.1.1. Espaces de nommage nommées
11.1.2. Espaces de nommage anonymes
11.1.3. Alias d'espaces de nommage
11.2. Déclaration using
11.2.1. Syntaxe des déclarations using
11.2.2. Utilisation des déclarations using dans les classes
11.3. Directive using
Chapitre 12
12. Les template
12.1. Généralités
12.2. Déclaration des paramètres template
12.2.1. Déclaration des types template
12.2.2. Déclaration des constantes template
12.3. Fonctions et classes template
12.3.1. Fonctions template
12.3.2. Les classes template
12.3.3. Fonctions membres template
12.4. Instanciation des template
12.4.1. Instanciation implicite
12.4.2. Instanciation explicite
12.4.3. Problèmes soulevés par l'instanciation des template
12.5. Spécialisation des template
12.5.1. Spécialisation totale
12.5.2. Spécialisation partielle
12.5.3. Spécialisation d'une méthode d'une classe template
12.6. Mot-clé typename
12.7. Fonctions exportées
La bibliothèque standard C++
II. La bibliothèque standard C++
Chapitre 13
13. Services et notions de base de la bibliothèque standard
13.1. Encapsulation de la bibliothèque C standard
13.2. Définition des exceptions standards
13.3. Abstraction des types de données : les traits
13.4. Abstraction des pointeurs : les itérateurs
13.4.1. Notions de base et définition
13.4.2. Classification des itérateurs
13.4.3. Itérateurs adaptateurs
13.4.3.1. Adaptateurs pour les flux d'entrée / sortie standards
13.4.3.2. Adaptateurs pour l'insertion d'éléments dans les conteneurs
13.4.3.3. Itérateur inverse pour les itérateurs bidirectionnels
13.5. Abstraction des fonctions : les foncteurs
13.5.1. Foncteurs prédéfinis
13.5.2. Prédicats et foncteurs d'opérateurs logiques
13.5.3. Foncteurs réducteurs
13.6. Gestion personnalisée de la mémoire : les allocateurs
13.7. Notion de complexité algorithmique
XVI-G-1. 13.7.1. Généralités
13.7.2. Notions mathématiques de base et définition
13.7.3. Interprétation pratique de la complexité
Chapitre 14
14. Les types complémentaires
14.1. Les chaînes de caractères
14.1.1. Construction et initialisation d'une chaîne
14.1.2. Accès aux propriétés d'une chaîne
14.1.3. Modification de la taille des chaînes
14.1.4. Accès aux données de la chaîne de caractères
14.1.5. Opérations sur les chaînes
14.1.5.1. Affectation et concaténation de chaînes de caractères
14.1.5.2. Extraction de données d'une chaîne de caractères
14.1.5.3. Insertion et suppression de caractères dans une chaîne
14.1.5.4. Remplacements de caractères d'une chaîne
14.1.6. Comparaison de chaînes de caractères
14.1.7. Recherche dans les chaînes
14.1.8. Fonctions d'entrée / sortie des chaînes de caractères
14.2. Les types utilitaires
14.2.1. Les pointeurs auto
14.2.2. Les paires
14.3. Les types numériques
14.3.1. Les complexes
14.3.1.1. Définition et principales propriétés des nombres complexes
14.3.1.2. La classe complex
14.3.2. Les tableaux de valeurs
14.3.2.1. Fonctionnalités de base des valarray
14.3.2.2. Sélection multiple des éléments d'un valarray
14.3.2.2.1. Sélection par un masque
14.3.2.2.2. Sélection par indexation explicite
14.3.2.2.3. Sélection par indexation implicite
14.3.2.2.4. Opérations réalisables sur les sélections multiples
14.3.3. Les champs de bits
Chapitre 15
15. Les flux d'entrée / sortie
15.1. Notions de base et présentation générale
15.2. Les tampons
15.2.1. Généralités sur les tampons
15.2.2. La classe basic_streambuf
15.2.3. Les classes de tampons basic_stringbuf et basic_filebuf
15.2.3.1. La classe basic_stringbuf
15.2.3.2. La classe basic_filebuf
15.3. Les classes de base des flux : ios_base et basic_ios
15.3.1. La classe ios_base
15.3.2. La classe basic_ios
15.4. Les flux d'entrée / sortie
15.4.1. La classe de base basic_ostream
15.4.2. La classe de base basic_istream
15.4.3. La classe basic_iostream
15.5. Les flux d'entrée / sortie sur chaînes de caractères
15.6. Les flux d'entrée / sortie sur fichiers
Chapitre 16
16. Les locales
16.1. Notions de base et principe de fonctionnement des facettes
16.2. Les facettes standards
16.2.1. Généralités
16.2.2. Les facettes de manipulation des caractères
16.2.2.1. La facette ctype
16.2.2.2. La facette codecvt
16.2.3. Les facettes de comparaison de chaînes
16.2.4. Les facettes de gestion des nombres
16.2.4.1. La facette num_punct
16.2.4.2. La facette d'écriture des nombres
16.2.4.3. La facette de lecture des nombres
16.2.5. Les facettes de gestion des monnaies
16.2.5.1. La facette money_punct
16.2.5.2. Les facettes de lecture et d'écriture des montants
16.2.6. Les facettes de gestion du temps
16.2.6.1. La facette d'écriture des dates
16.2.6.2. La facette de lecture des dates
16.2.7. Les facettes de gestion des messages
XIX-C. 16.3. Personnalisation des mécanismes de localisation
16.3.1. Création et intégration d'une nouvelle facette
16.3.2. Remplacement d'une facette existante
Chapitre 17
17. Les conteneurs
17.1. Fonctionnalités générales des conteneurs
17.1.1. Définition des itérateurs
17.1.2. Définition des types de données relatifs aux objets contenus
17.1.3. Spécification de l'allocateur