Video: Overloading C++ Stream Insertion, Extraction Operators | C++ Programming Tutorial 2024
Molti programmi C ++ di inizio lettura dall'oggetto di input cin e output attraverso l'oggetto di output cout. Forse non ci hai davvero pensato molto, ma questa tecnica di input / output è un sottoinsieme di ciò che è noto come stream I / O.
Stream I / O è un argomento troppo ampio per essere trattato completamente in un numero qualsiasi di articoli semplici - interi libri sono dedicati a questo argomento. Fortunatamente, non c'è tutto quello che è necessario sapere sull'I / O dello stream per scrivere la maggior parte dei programmi.
Stream I / O è basato su versioni sovraccaricate dell'operatore >> () e dell'operatore << () . La dichiarazione di questi operatori sovraccaricati si trova nel file iostream. Il codice per queste funzioni è incluso nella libreria standard, a cui si collega il programma C ++.
Il seguente codice mostra solo alcuni dei prototipi che appaiono in iostream :
// per l'input che abbiamo: istream & operator >> (istream e source, char * pDest); istream & operator >> (istream e source, string e sDest); istream & operator >> (istream e source, int e dest); istream & operator >> (istream e source, double e dest); // … e così via … // per l'output abbiamo: ostream & operator << (ostream & dest, char * pSource); ostream & operator << (ostream e dest, string e sDest); ostream & operator << (ostream & dest, int source); ostream & operator << (ostream & dest, doppia sorgente); // … e così via …
Quando sovraccaricato per eseguire I / O, l'operatore >> () viene chiamato estrattore e l'operatore << () viene chiamato l'inseritore . La classe istream è la classe base per l'input da un file o da un dispositivo come la tastiera. C ++ apre l'oggetto istream cin all'avvio del programma. Allo stesso modo, ostream è la base per l'output.
I prototipi di cui sopra sono per inserter ed estrattori per puntatori a stringhe di caratteri con terminazione nulla (come "My name"), per oggetti stringa, per ints e per doppi.