lundi 9 avril 2012

Cours de C/C++

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 mémoire à utiliser
 17.1.4. Opérateurs de comparaison des conteneurs
17.1.5. Méthodes d'intérêt général
 17.2. Les séquences
17.2.1. Fonctionnalités communes
 17.2.1.1. Construction et initialisation
  17.2.1.2. Ajout et suppression d'éléments
17.2.2. Les différents types de séquences
 17.2.2.1. Les listes 17.2.2.2. Les vecteurs
 17.2.2.3. Les deques
 17.2.2.4. Les adaptateurs de séquences
 17.2.2.4.1. Les piles
  17.2.2.4.2. Les files
 17.2.2.4.3. Les files de priorités
  17.3. Les conteneurs associatifs
  17.3.1. Généralités et propriétés de base des clefs
  17.3.2. Construction et initialisation
  17.3.3. Ajout et suppression d'éléments
 17.3.4. Fonctions de recherche
 Chapitre 18
 18. Les algorithmes
 18.1. Opérations générales de manipulation des données
  18.1.1. Opérations d'initialisation et de remplissage
 18.1.2. Opérations de copie
  18.1.3. Opérations d'échange d'éléments
  18.1.4. Opérations de suppression d'éléments
 18.1.5. Opérations de remplacement
 XXI-A-6. 18.1.6. Réorganisation de séquences
 18.1.6.1. Opérations de rotation et de permutation
 18.1.6.2. Opérations d'inversion
  18.1.6.3. Opérations de mélange
  18.1.7. Algorithmes d'itération et de transformation
  18.2. Opérations de recherche
  18.2.1. Opération de recherche d'éléments
 18.2.2. Opérations de recherche de motifs
 18.3. Opérations d'ordonnancement
 18.3.1. Opérations de gestion des tas
  18.3.2. Opérations de tri
 18.3.3. Opérations de recherche binaire
  18.4. Opérations de comparaison
 18.5. Opérations ensemblistes
  18.5.1. Opérations d'inclusion
 18.5.2. Opérations d'intersection
 18.5.3. Opérations d'union et de fusion
  18.5.4. Opérations de différence
 18.5.5. Opérations de partitionnement
 Chapitre 1919. Conclusion
 Annexe A
A. Priorités des opérateurs
 Annexe B
 B. Draft Papers
 Appendix C
C. GNU Free Documentation License
Annexe D
D. Licence de documentation libre GNU
 Bibliographie
 BIBLIOGRAPHIE
 Annexe E
 Les Listes
  Liste des tableaux
 Liste des illustrations
 Liste des Examples

Aucun commentaire:

Enregistrer un commentaire

Comments system

Disqus Shortname