next up previous contents
Elõre: Include file-ok és függvények Fel: Programozás C++-ban Vissza: Operator overloading

C++ I/O könyvtárak

Az stdio.h include file-ban deklarált szabványos folyam jellegû formátumozott I/O függvények (mint például printf, scanf, stb.) mellett a C++ újabb hasonló, folyam-orientált függvényeket tartalmaz az iostreams könyvtárban. Az új C++ I/O függvények deklarációját az iostream.h include file-ban találhatjuk. Az új I/O könyvtár használata elõnyöket nyújt az stdio.h-hoz képest. Ezek egyike, hogy a függvények szintaxisa sokkal egyszerûbb, elegánsabb, olvashatóbb. Egy másik tényezõ, hogy a C++ folyamkezelõ mechanizmusa a leggyakrabban elõforduló esetekben hatékonyabb és rugalmasabb, mint a hagyományos C folyamkezelés. A formátumozott kimenet elõállítása az operátor-overloadingnak köszönhetõen például sokszor egyszerûbb, mint a printf-fel. Ugyanazon operátor használható mind elõredefiniált, mind pedig a felhasználó által definiált adattípusok kiiratására.

A C++-ban négyelõre definiált folyam jellegû objektum van. Ezek a következõk:

Ezek a folyamok tetszõleges eszközre vagy file-ba átirányíthatók, míg C-ben csak az stdin és az stdout irányítható át. Az iostream könyvtár elemei hierarchikusan épülnek egymásra. A könyvtár elemei az alap-primitívtõl a legspecializáltabb elemig a következõk: Az istream osztály az overloading segítségével egy új jelentést ad a >> operátor számára a standard elemi típusok esetére. Ha az x változó típusa standard elemi típus, akkor a cin>>x kifejezés mellékhatásaként az x típusának (char, int, long, float, double) megfelelõ konverziós input rutin az x változónak megfelelõ memóriacímre teszi a standard bemenetrõl érkezõ adatot. A kifejezés értékeként cin-t kapjuk vissza.

Az elõbbiekhez hasonló módon, az ostream osztályban található a << operátor új értelmezése. A cout<<x; utasítás hatására az x változó típusának megfelelõ output rutin a szabványos kimeneti állományra küldi az x értékének megfelelõ karaktersorozatot és visszaadja cout-ot. (Itt x típusa szintén valamelyik standard elemi típus lehet.)

A << és >> operátor-függvények a megfelelõ folyam osztályára vonatkozó referencia típusú visszatérési értéket adnak, így több ilyen operátor láncba fûzhetõ:

            int    i = 0, x = 243;
            double d = 0;
            cout << "The value of x is " << x << '\n';
            cin >> i >> d;  // Egy int-et, utana SPACE-t,
                            // majd egy double-t var.
IBM PC specifikus lehetõségek


next up previous contents
Elõre: Include file-ok és függvények Fel: Programozás C++-ban Vissza: Operator overloading