http://www.ann.jussieu.fr/courscpp/courscpp.tar.gz Note aux programmeurs connaissant le C Plan du site Des exercices 1/ Éléments de base Compilation et structure d’un texte source Messages d’erreur Symboles et identificateurs Commentaires Types de données et variables Caractérisation des types Déclarations de variables Définitions de variables Modification d’une variable par affectation Des fonctions et des programmes Une fonction élémentaire La fonction principale Appel d’une fonction Fonctions avec arguments Boucles et branchements Instruction de branchement simple if Boucles simples while et do Boucle complexe for Déclarations internes 2/ Types prédéfinis et opérateurs Types entiers Constantes entières Constantes hexadécimales et octales Opérateurs sur les entiers Caractères et chaînes Chaînes de caractères constantes Nombres à virgule flottante Opérateurs sur les décimaux Opérateurs et raccourcis Incrémentation et décrémentation Opérateurs logiques Instruction opératoire et affectation Changements de type Autres raccourcis et opérateurs Précédence des opérateurs 3/ Types composés Références Tableaux Tableaux sans dimension Dépassement des index d’un tableau Recopie de tableaux Initialisation d’un tableau Tableaux multidimensionnels Pointeurs Pointeurs ou références ? Arithmétique des pointeurs Pointeur sur rien, pointeur sur tout Pointeurs ou tableaux ? Allocation dynamique de la mémoire Opérateurs new et delete 4/ Autres capacités du langage Constantes Enumérations Interruptions d’exécution Arrêt d’une boucle par break Saut dans une boucle par continue Arrêt d’une fonction Arrêt du programme Instruction de redirection multiple switch Variables registres Définitions de types Variables volatiles Arguments de main 5/ Fonctions Prototypes de fonctions Arguments d’une fonction Passage par valeur Arguments tableaux Passage par référence Arguments constants Ordre d’évaluation des paramètres Arguments par défaut Ellipse Accès aux variables globales Résultat d’une fonction Fonctions en ligne inline Différentes variables et leur visibilité Bloc d’instructions Conflit d’identificateurs Variables statiques et dynamiques Recouvrement des fonctions Récursivité Pointeurs sur des fonctions 6/ Classes et structures Structures Utilisation des structures Adressage des champs Définition Types des champs Arguments de fonctions Déclaration sans définition Fonctions membres Déclaration Implantation Appel d’une fonction membre Méthodes en ligne Ordre de déclaration Différences entre données et fonctions membres Pointeurs sur membres Membres statiques Protection des données Un exemple Classes Constructeurs et destructeurs Constructeurs Constructeurs par défaut Appel des constructeurs Constructeurs de copie Destructeurs New et delete avec constructeurs et destructeurs Appel explicite d’un destructeur Retour sur l’exemple Variables globales et statiques Initialisations multiples Intérêt des constructeurs Polymorphisme Unions et champs de bits Champs de bits Unions 7/ Amies et opérateurs Amies Fonctions amies Méthodes amies Classes amies Redéfinition d’opérateurs Opérateurs sur de nouvelles classes Opérateurs unaires Opérateurs redéfinissables et hypothèses Types dont on peut redéfinir les opérateurs Opérateurs de changement de type Incrémentation et décrémentation Opérateurs [] et () Opérateurs d’affectation Opérateurs new et delete Opérateurs new et delete globaux Opérateurs membres ou amis 8/ Héritage Réutilisation du code Méthodes héritées Constructeurs et destructeurs Membres privés, publics, protégés Méthodes virtuelles Destructeurs virtuels Polymorphisme et classes abstraites Compatibilité Compatibilité des pointeurs Polymorphisme par héritage Classes abstraites Polymorphisme automatique Héritage multiple Conflits de noms Arbre de dérivation Héritage virtuel Fonctionnement interne 9/ Flots d’entrées-sorties Classes de flots Flots généraux : classe ios État des flots Mode d’écriture Indicateurs de format Autres éléments Flots de sortie : classe ostream Changement de position Écriture non formatée Écriture formatée Nouvelles sorties Flots d’entrée : classe istream Changement de position Lecture non formatée Réinsertion Lecture formatée Flots mixtes : classe iostream Flots prédéfinis Flots sur disques et fichiers Flots en mémoire Manipulateurs 10/ Préprocesseur, éditeur de liens et fichiers multiples Le préprocesseur Directive d’inclusion #include Définition de paramètres par #define Contrôle de compilation par #if Constantes prédéfinies Messages d’erreur par #error Directives particulières #pragma Macros Un outil à employer avec prudence Classes génériques Éditeur de liens, fichiers multiples Librairies standard Fichiers multiples Projets Objets externes ou statiques Annexes Liste des mots réservés de C++ et Turbo C++ Précédence des opérateurs
inline
[]
()