Introduction au C++ et à la programmation objet
Version 1.2
(Octobre 2001)
Introduction
CopyLeft
Symboles et conventions
La programmation objet
Poser un problème
La programmation objets expliquée aux programmeurs
L'approche procédurale
Qu'est-ce qu'une fonction ?
Variables locales ou globales
Approche modulaire:
Interface publique...
...Implémentation cachée
Encapsulation des données
Prototypage
Approche objets:
Des objets intégrés au système de typage
Classer les objets
Définir des piles de n'importe quoi
Problèmes de conception
La clé du succès: l'étape de conception
Héritage ou généricité: les deux sortes de polymorphisme
Des bibliothèques d'objets
La programmation objets expliquée aux gens normaux
Une cafétéria informatisée
Le café en programmation procédurale
Le café en programmation objet
Les types de base
Déclarations de variables
La portée d'un nom
La structure d'une déclaration de variables
Les types prédéfinis
Le type
bool
Les types
char
ou numériques
Le type
void
Les types
struct
et
union
Pointeurs (*), références (&), descripteur const
Le type référence
Le type pointeur
Différences entre pointeurs et références
Une référence, pour quoi faire ?
Le descripteur const
Le type class
Sections privées, protégées, publiques
Section public
Section protected
Fonctions membres
Fonctions amies
Accès aux données
Constructeurs
Destructeur
Le descripteur
static
Le descripteur const
Le pointeur *this
Surcharger fonctions et opérateurs
Modifier une fonction sans remettre en cause l'existant
Déclaration et définition de fonctions
Surcharge de fonctions
Le constructeur de copie
Valeurs par défaut des arguments
Valeurs par défaut et constructeurs
Surcharger les opérateurs
Opérateurs et fonctions
Les quatre opérations
Les opérateurs d'incrémentation ou décrémentation
L'opérateur d'affectation
Conversions et opérateurs
Autres opérateurs
Héritage
L'héritage simple
Accès aux données: la section protected
Constructeurs...
...et destructeurs
Fonctions-membres
Fonctions virtuelles
Fonctions virtuelles pures
Classes de bases abstraites
Constructeurs virtuels...
...et destructeurs virtuels
Appel de fonctions virtuelles depuis le constructeur ou le destructeur
L'opérateur d'affectation dans une classe de base
L'héritage multiple
Les classes de bases virtuelles
Modèles ("templates")
Classes paramétrées
Définition
Instantiation
Paramètres utilisables
Modèles de fonctions
Spécialisation
Quelques conseils
Exceptions
Que faire en cas d'erreur ?
Le système d'exceptions
Les hiérarchies d'objets exceptions
La déclaration de fonction
La génération d'exception
La capture des exceptions
Exceptions non capturées
Exceptions et ...
...constructeurs
...destructeurs
Gestion de la mémoire
Qu'est-ce que l'allocation dynamique de mémoire?
Pointeurs empilés, objets entassés
Objets perdus et fuites de mémoire
Les pointeurs qui pendouillent
Propriétaires et référents
Opérateurs et fonctions
Les opérateurs
new
et
delete
Les opérateurs
new[]
et
delete[]
Fonctions malloc, free, realloc
Objets utilisés pour la gestion de la mémoire
L'objet
auto_ptr
Objets gestionnaires de ressources
Produire du code robuste, malgré les exceptions
Les objets à comptage de référence
La bibliothèque standard
Compléments sur le langage
Les espaces de noms
Les types locaux
L'instruction
typename
Les conteneurs
Conteneurs d'objets ou conteneurs de pointeurs ?
Les conteneurs de la bibliothèque standard
Types définis sur les conteneurs
Fonctions-membres ou opérateurs définis sur les conteneurs
Qui fait quoi ?
Autres objets
Les itérateurs
Les objets fonctions
Algorithmes
Les entrées-sorties
Références et autres liens
Emmanuel Courcelle <manu@ipbs.fr>
Last modified: Wed Oct 10 12:07:02 CEST 2001