Estructura de clases de flujo de C++

En C++ hay varias clases de flujo para definir varios flujos relacionados con archivos y para realizar operaciones de entrada y salida. Todas estas clases están definidas en el archivo iostream.h . La figura que se muestra a continuación muestra la jerarquía de estas clases.
 

  1. La clase ios es la clase superior en la jerarquía de clases de flujo. Es la clase base para las clases istream, ostream y streambuf .
     
  2. istream y ostream sirven las clases base para la clase iostream . La clase istream se usa para la entrada y ostream para la salida. 
     
  3. La clase ios se hereda indirectamente de la clase iostream mediante istream y ostream . Para evitar la duplicidad de datos y funciones miembro de la clase ios , se declara como clase base virtual cuando se hereda en istream y ostream como
     
class istream: virtual public ios
{
};
class ostream: virtual public ios
{
};

Las clases _withassign cuentan con una funcionalidad adicional para las operaciones de asignación, por eso las clases _withassign
 

Instalaciones proporcionadas por estas clases de corriente. 
 

  1. La clase ios: la clase ios es responsable de proporcionar todas las funciones de entrada y salida a todas las demás clases de flujo. 
     
  2. La clase istream: esta clase es responsable de manejar el flujo de entrada. Proporciona una serie de funciones para manejar caracteres, strings y objetos como get, getline, read, ignore, putback, etc. 
    Ejemplo: 
     

CPP14

#include <iostream>
using namespace std;
 
int main()
{
    char x;
 
    // used to scan a single char
    cin.get(x);
 
    cout << x;
}

Aporte: 
 

g

Producción: 
 

g

La clase ostream: esta clase es responsable de manejar el flujo de salida. Proporciona una serie de funciones para manejar caracteres, strings y objetos como escribir, poner, etc. 
Ejemplo: 
 

CPP14

#include <iostream>
using namespace std;
 
int main()
{
    char x;
 
    // used to scan a single char
    cin.get(x);
 
    // used to put a single char onto the screen.
    cout.put(x);
}
  1. Aporte: 
     
g

Producción: 
 

g

El iostream: esta clase es responsable de manejar tanto el flujo de entrada como el de salida, ya que se heredan tanto la clase istream como la clase o stream . Proporciona la función de la clase istream y la clase o stream para manejar caracteres, strings y objetos como get, getline, read, ignore, putback, put, write, etc. 
Ejemplo: 
 

CPP14

#include <iostream>
using namespace std;
 
int main()
{
 
    // this function display
    // ncount character from array
    cout.write("geeksforgeeks", 5);
}

Producción: 
 

geeks

Clase istream_withassign: esta clase es una variante de istream que permite la asignación de objetos. El objeto predefinido cin es un objeto de esta clase y, por lo tanto, puede reasignarse en tiempo de ejecución a un objeto istream diferente . 
Ejemplo: Mostrar que cin es objeto de la clase istream
 

CPP14

#include <iostream>
using namespace std;
 
class demo {
public:
    int dx, dy;
 
    // operator overloading using friend function
    friend void operator>>(demo& d, istream& mycin)
    {
        // cin assigned to another object mycin
        mycin >> d.dx >> d.dy;
    }
};
 
int main()
{
    demo d;
    cout << "Enter two numbers dx and dy\n";
 
    // calls operator >> function and
    // pass d and cin as reference
    d >> cin; // can also be written as operator >> (d, cin) ;
 
    cout << "dx = " << d.dx << "\tdy = " << d.dy;
}

Aporte: 
 

4 5

Producción: 
 

Enter two numbers dx and dy
4 5
dx = 4  dy = 5

Clase ostream_withassign: esta clase es una variante de ostream que permite la asignación de objetos. Los objetos predefinidos cout, cerr, clog son objetos de esta clase y, por lo tanto, pueden reasignarse en tiempo de ejecución a un objeto ostream diferente . 
Ejemplo: Mostrar que cout es objeto de la clase ostream
 

CPP14

#include <iostream>
using namespace std;
 
class demo {
public:
    int dx, dy;
 
    demo()
    {
        dx = 4;
        dy = 5;
    }
 
    // operator overloading using friend function
    friend void operator<<(demo& d, ostream& mycout)
    {
        // cout assigned to another object mycout
        mycout << "Value of dx and dy are \n";
        mycout << d.dx << " " << d.dy;
    }
};
 
int main()
{
    demo d; // default constructor is called
 
    // calls operator << function and
    // pass d and cout as reference
    d << cout; // can also be written as operator << (d, cout) ;
}

Producción: 
 

Value of dx and dy are
4 5

Artículos relacionados
 

Publicación traducida automáticamente

Artículo escrito por gyanendra371 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *