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.
- 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 .
- istream y ostream sirven las clases base para la clase iostream . La clase istream se usa para la entrada y ostream para la salida.
- 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.
- 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.
- 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); }
- 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