Sobrecarga de operadores de flujo

Solo disponible en BuenasTareas
  • Páginas : 3 (598 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de mayo de 2010
Leer documento completo
Vista previa del texto
SOBRECARGA DE OPERADORES DE FLUJO
Las sentencias de flujos se utilizan para entradas y salidas, lectura y visualización de valores. Los flujos no son parte del lenguaje C++, pero se implementancomo clases en la biblioteca de C++. Las declaraciones para estas clases se almacenen en el archivo de cabecera . En C++ es posible sobrecargar los operadores de inserción y extracción de modo que puedamanipular cualquier sentencia de flujo que incluya cualquier tipo de clase. Como se definen en el archivo de cabecera , estas operadores trabajan con todos los tipos predefinidos, tales como int,long, double y char*. Cuando se definen sus propias clases, tales como la clase string, se puede desear sobrecargar las definiciones de los operadores « y » de modo que trabajen con sus clases. Porejemplo, una vez que se sobrecarga el operador se pueden leer caracteres de un flujo de entrada almacenándolos en un objeto de una clase string escribiendo:
String entrada_usuario;
cin »entrada_usuario;
De modo similar, para visualizar una cadena string se escribirá lo siguiente:
string info = "Me gusta progra";
cout « info « endl;
Sobrecarga de flujo de salida
La sobrecarga deloperador de flujo de salida « puede añadir a sus propias clases los tipos de datos que diseñan las sentencias de flujo de salida. El código punto.cpp muestra un ejemplo típico. El programa declara unaclase llamada punto que almacena dos valores enteros “x” y “y”, que representan los valores de las coordenadas de una posición en una pantalla de gráficos. Normalmente, para visualizar los valores demiembros privados como “x” y “y” habrá que llamar a funciones miembro tales como leerx y leery. Sin embargo, añadiendo a la clase punto un operador de flujo de salida « sobrecargado, se podránescribir objetos punto en sentencias de flujo de salida.
//punto.cpp
include class punto{
private:
int x, y;
public:
punto() {x= y = 0;}
punto (int xx, int yy) {x = xx; y = yy;}...
tracking img