Classes de flots

Les classes de flots sont au nombre de dix-huit, réparties dans trois fichiers distincts : <iostream.h>, <fstream.h> et <strstrea.h>. Un quatrième fichier <iomanip.h> peut être utilisé dans certains cas (voir fin du chapitre).

Le schéma ci-après montre la répartition des classes ; les flèches grises indiquent une dérivation. On peut distinguer les catégories suivantes :



La répartition peut sembler complexe, mais elle est en fait assez simple à comprendre. Un flot d’entrées-sorties est une liste de caractères qu’on ne charge pas entièrement en mémoire. Donc en premier lieu un flot doit avoir un tampon, c’est-à-dire un petit bloc de mémoire où ranger les caractères en attente. Ce tampon est géré par un élément de la classe streambuf ou de ses dérivées, qui fournit des opérations comme « placer n caractères dans le tampon » , « retirer n caractères » , etc. Ces opérations sont de bas niveau, elles ne nous regardent pas.

Chaque flot va donc contenir un pointeur sur un tampon (ou plusieurs éventuellement), plus un certain nombre de renseignements auxiliaires indiquant notamment l’état dans lequel il se trouve. C’est en fait le type de tampon qui détermine en grande partie le type de flot ; par contre, le type de flot indique les opérations autorisées. En particulier, il n’est évidemment pas permis d’écrire sur un flot d’entrée ou de lire dans un flot de sortie.

Précédent Précédent Sommaire Sommaire Suivant Suivant