Bene, ti faccio un esempio:

consideriamo di avere una classe (componente) che prende in ingresso uno stream di dati e fornisce in uscita lo stesso stream di dati moltiplicato per una costante "K".

La funzione che genera lo stream d'uscita avrà il seguente pseudo-codice:

codice:
- crea un nuovo stream "outstream"
- moltiplica ogni elemento dello stream di ingresso per "K" e mette il risultato in "outstream"
- restituisce "outstream"
"iostream" gestisce anche double ma io devo avere come ingresso solo numeri, non devo permettere che vengano inseriti caratteri o stringhe e credo che questa cosa non la posso fare con "iostream".