CATEGORII DOCUMENTE |
DOCUMENTE SIMILARE |
|
TERMENI importanti pentru acest document |
|
In sectiunea 15.1 am prezentat niste cunostinte de baza referitoare la ierarhiile de clase existente in C++ pentru realizarea operatiilor de intrare/iesire. Am vazut ca nu exista instructiuni de intrare/iesire in limbajul C, si nici in C++. In schimb in limbajul C s-au definit functii standard de biblioteca, iar in C++ ierarhii de clase pentru operatii de intrare/iesire. In continuare ne vom ocupa de cele doua ierarhii de clase definite in C++ in vederea efectuarii operatiilor de intrare/iesire.
Operatiile de intrare/iesire sunt realizate de catre cele doua ierarhii de
clase cu ajutorul notiunii de stream.
Printr-un stream vom intelege un flux
de date de la multimea datelor sursa (tastatura, fisier sau zona de memorie) la
multimea datelor destinatie (monitor, fisier sau zona de memorie). Cele doua
ierarhii de clase sunt declarate in fisierul iostream.h, deci acest fisier va trebui inclus de fiecare data,
cand se lucreaza cu ierarhiile de clase pentru intrare/iesire. Prima ierarhie
de clase este:
Figura 4. Ierarhia de clase cu radacina in streambuf
Clasa streambuf se poate folosi
pentru gestionarea zonelor tampon si pentru operatii de intrare/iesire simple.
A doua ierarhie de clase este mai complicata. Prezentam in continuare o parte a
ei.
Figura 5. Ierarhia de clase cu radacina in ios
Legatura dintre cele doua ierarhii de clase s-a realizat printr-o data membru a clasei ios, care este un pointer catre clasa streambuf. Clasa ios este clasa de baza virtuala atat pentru clasa istream, cat si pentru ostream. Astfel elementele definite in clasa ios vor fi prezente numai intr-un singur exemplar in clasa iostream.
Clasa istream realizeaza o conversie din caracterele unui obiect de tip streambuf, conform unui format specificat. Folosind clasa ostream se poate efectua o conversie conform unui format specificat, in caractere memorate intr‑un obiect de tip streambuf, iar clasa iostream permite conversii in ambele directii.
Clasele istream_withassign, ostream_withassign si iostream_withassign sunt clase derivate, avand clasele de baza istream, ostream respectiv iostream. In plus operatorul de atribuire (=) este supraincarcat in doua moduri, de aceste clase.
Clasele derivate din clasa istream sau ostream se vor numi clase stream, iar obiectele claselor derivate din clasa ios se vor numi streamuri. Exista urmatoarele patru streamuri standard definite in fisierul iostream.h:
Stream |
Obiect al clasei |
Corespunde fisierului standard |
cin |
istream_withassign |
stdin |
cout |
ostream_withassign |
stdout |
cerr |
ostream_withassign |
stderr (fara zone tampon) |
clog |
ostream_withassign |
stderr (cu zone tampon) |
Tabelul 3. Streamuri standard
In continuare ne vom ocupa de folosirea streamurilor standard, pentru realizarea operatiilor de intrare/iesire conform unui format specificat.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 864
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved