@IvaVuk
Đokin primer je dobar. Jesi li stvarno skapirao(la) ili je ono bila ironija?
P.S.
Na osnovu Đokine reakcije vidim da je bila ironija. Pokušaću ja da ti objasnim.
Da li ti je jasna ova funkcija?
Code:
friend ostream& posaljiPodatkeLjubimcaNaIzlaz (ostream& os, const Ljubimac& pet) {
os << "Moj ljubimac je " << pet.vrsta << " " << "po imenu " << pet.ime << "\n";
return os;
}
Funkcija vraća referencu na objekat tipa ostream, a vraća onaj objekat koji dobije kao ulazni parametar. Uzima dva parametra, izlazni tok (ostream) i objekat klase Lubimac, čije je podatke potrebno poslati na izlaz.
Ovakvu funkciju mogao bih da pozovem sa:
Code:
posaljiPodatkeLjubimcaNaIzlaz(std::cout, petunija);
Obična funkcija, osim što je prijatelj (bolji termin je kooperativna) klasi Ljubimac, pa može da pristupi i privatnim podacima. Ovo bi trebalo da je jasno.
Zar nije lepše kada overloadujemo operator, pa se funkcija više ne zove posaljiPodatkeLjubimcaNaIzlaz, već operator <<.
Code:
friend ostream& operator << (ostream& os, const Ljubimac& pet) {
os << "Moj ljubimac je " << pet.vrsta << " " << "po imenu " << pet.ime << "\n";
return os;
}
Sada mogu da prikažem podatke ljubimca na sledeći način:
Code:
std::cout<<petunija;
Kraće je i jasnije. Zar overloadovanje operatora nije strava?
[Ovu poruku je menjao Zurg dana 20.08.2019. u 09:52 GMT+1]
[Ovu poruku je menjao Zurg dana 20.08.2019. u 09:52 GMT+1]
[Ovu poruku je menjao Zurg dana 20.08.2019. u 09:54 GMT+1]