Cours de C++
Le
Méga Cours de C++
de Christian Casteyde
Table des matières
Avant-propos
I.
Le langage C++
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.7.
La fonction main
1.8.
Les fonctions d'entrée / sortie de base
1.9.
Exemple de programme complet
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
3.
Types avancés et classes de stockage
3.1.
Structures de données et types complexes
3.2.
Les classes de stockage
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.7.
Références et pointeurs constants et volatiles
4.8.
Arithmétique des pointeurs
4.9.
Utilisation des pointeurs avec les tableaux
4.10.
Les chaînes de caractères : pointeurs et tableaux à la fois !
4.11.
Allocation dynamique de mémoire
4.12.
Pointeurs et références de fonctions
4.13.
Paramètres de la fonction main - ligne de commande
4.14.
DANGER
5.
Le préprocesseur C
5.1.
Définition
5.2.
Les commandes du préprocesseur
5.3.
Les macros
5.4.
Manipulation de chaînes de caractères dans les macros
5.5.
Les trigraphes
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.5.
Problèmes syntaxiques relatifs à la compilation séparée
7.
Comment faire du code illisible ?
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.8.
Constructeurs et destructeurs
8.9.
Pointeur this
8.10.
Données et fonctions membres statiques
8.11.
Surcharge des opérateurs
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
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
10.
Identification dynamique des types
10.1.
Identification dynamique des types
10.2.
Transtypages C++
11.
Les espaces de nommage
11.1.
Définition des espaces de nommage
11.2.
Déclaration using
11.3.
Directive using
12.
Les template
12.1.
Généralités
12.2.
Déclaration des paramètres template
12.3.
Fonctions et classes template
12.4.
Instanciation des template
12.5.
Spécialisation des template
12.6.
Mot-clé typename
12.7.
Fonctions exportées
II.
La bibliothèque standard C++
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.5.
Abstraction des fonctions : les foncteurs
13.6.
Gestion personnalisée de la mémoire : les allocateurs
13.7.
Notion de complexité algorithmique
14.
Les types complémentaires
14.1.
Les chaînes de caractères
14.2.
Les types utilitaires
14.3.
Les types numériques
15.
Les flux d'entrée / sortie
15.1.
Notions de base et présentation générale
15.2.
Les tampons
15.3.
Les classes de base des flux : ios_base et basic_ios
15.4.
Les flux d'entrée / sortie
15.5.
Les flux d'entrée / sortie sur chaînes de caractères
15.6.
Les flux d'entrée / sortie sur fichiers
16.
Les locales
16.1.
Notions de base et principe de fonctionnement des facettes
16.2.
Les facettes standards
16.3.
Personnalisation des mécanismes de localisation
17.
Les conteneurs
17.1.
Fonctionnalités générales des conteneurs
17.2.
Les séquences
17.3.
Les conteneurs associatifs
18.
Les algorithmes
18.1.
Opérations générales de manipulation des données
18.2.
Opérations de recherche
18.3.
Opérations d'ordonnancement
18.4.
Opérations de comparaison
18.5.
Opérations ensemblistes
19.
Conclusion
A.
Priorités des opérateurs
B.
Draft Papers
C.
GNU Free Documentation License
D.
Licence de documentation libre GNU
BIBLIOGRAPHIE
Les Cours de l'Université de Provence,
Apprendre C++ avec QT
(documents pdf)
Présentation
Principes de Base
Variables, contantes et références
Fonctions sans paramètres
Structures de contrôle
Opérateurs à effet et fonctions avec paramètres
Manipuler du texte
Utiliser des fichiers de données
Conteneurs
Privilège d'accès,
this
et amitié
Constructeurs et destructeurs
Fonctions opérateur
Allocation dynamique
Classes dérivées
Fonctions virtuelles et classes abstraites
Fonctions récursives
Tableaux
Allocation dynamique encapsulée
Outils de programmation génériques
Annexes
Combien avez-vous de doigts ?
Petit inventaire lexical
Utilisation de nombres pseudo-aléatoires
Membres statistiques
Surcharger les opérateurs
new
et
delete
Run-Time Type Information
Tableaux multidimensionnels
Note à l'intention des Internautes
TDs
Liste de vérifications préalables
Création de variables, de types et de références
Une calculette
Boucles et tests
Un jeu Tic tac toe
(morpion)
Un concordancier
Calculs sur des données numériques contenues dans un fichier
La patience des Pharaons
Reconnaître la langue d'un texte
Bataille Navale
Agenda
La course d'escargots
Et si Qt Designer n'existait pas ?
Et si les widgets proposés par Qt ne me conviennent pas parfaitement ?
Les chameaux sur la dune
Taquin
Entiers de Taille Inhabituelle