BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 21 Entrada / Salida en C++
Teoría: Sobrecarga de los operadores de Entrada/Salida (<< y >>)

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.