Los
operadores de extracción (>>) e inserción
(<<) en los flujos de entrada y salida se pueden sobrecargar
como otros operadores de C++. Ambos son operadores binarios (2 argumentos).
Sus prototipos son los siguientes:
ostream&
operator<< (ostream& co, const obj_type& a);
istream& operator>> (istream& ci, obj_type&
a);
Estos
flujos funcionan como cintas transportadoras que entran
(>>) o salen (<<) del programa. Se recibe una referencia
al flujo como primer argumento, se añade o se retira
de él la variable que se desee, y se devuelve
como valor de retorno una referencia al flujo modificado.
El valor de retorno es siempre una referencia al
stream de entrada/salida correspondiente. A continuación
se presenta un ejemplo de sobrecarga del operador (<<):
ostream&
operator<<(ostream& co, const matriz& A)
{
for
(int i=0; i<=nfilas; i++)
for
(int j=0; j<=ncol; j++)
co << A.c[i][j] << '\t';
co
<< '\n';
return(co);
}
Estos
operadores se sobrecargan siempre como operadores friend de
la clase en cuestión, ya que el primer argumento no puede
ser un objeto de una clase arbitraria.
|