Kód Výpis třídy do outputstream v CPP
Z CHWiki
Jak doplnit do své třidy, aby šla vypisovat do streamů např. takto:
MojeTrida a; (...) cout << "a = " << a << endl;
[editovat] Ukázkový kód
[main.cpp]
(...)
Promenna a(5), b(10), c; // vytvorim si objekty sve tridy
c = a + b; // neco s nima delam
cout << "c = " << c << endl; // vypisu si obsah 'c' do streamu 'cout'
(...)
[Promenna.h]
class Promenna {
public:
(...)
// tu vypisujici funkci zde napisu jako "friend", cimz ji umoznim videt i private
// promenne teto tridy
friend std::ostream& operator<<(std::ostream& o, const Promenna& prom) throw();
(...)
);
(...)
// a deklarace te vypisovaci funkce
std::ostream& operator<<(std::ostream& o, const Promenna& prom) throw();
[Promenna.cpp]
// takhle ta vypisovaci funkce vypada
ostream& operator<<(ostream& o, const Promenna& prom) throw() {
// nejaky kod uvnitr, ktery posila neco do output streamu 'o'
if (prom.typ == tpCislo)
o << prom.cislo;
else if (prom.typ == tpReal)
o << prom.real;
else if (prom.typ == tpText)
o << prom.text;
return o; // nezapomente ten ostream zas vratit
}
