#include using namespace std; /* Enkapsulacja inaczej zwana hermetyzacja (kapsulkowaniem) polega na ukrywaniu metod i atrybutow dla obiektów i klas zewnetrznych. Dostep do nich mozliwy jest tylko z wewnatrz klasy, do ktorej naleza, z klas zaprzyjaznionych lub z klas dziedziczacych. Ponizej jest pokazany przyklad dostepu do zmiennych ukrytych za pomoca zewnetrznej funkcji zaprzyjaznionej. Klasa bazowa Auta zaprzyjazniona z funkcja zewnetrzna o nazwie "opis_auta()" musi miec "deklaracje przyjazni" o tresci "friend void opis_auta(Auta)" lub "friend void opis_auta(Auta &) gdy przekazujemy przez referencje. Taki zapis pozwala na korzystanie przez funkcje z obiektów "private" klasy "Auta". */ class Auta { friend void opis_auta(Auta);//funkcja zaprzyjazniona private: int cena,moc,drzwi; string kolor; public: Auta(); }; Auta::Auta() { } void opis_auta(Auta obj)//zewnetrzna funkcja zaprzyjazniona z klasa { cout<<"Podaj cene: "; cin>>obj.cena; cout<<"Podaj moc: "; cin>>obj.moc; cout<<"Podaj ilosc drzwi: "; cin>>obj.drzwi; cout<<"Podaj kolor: "; cin>>obj.kolor; cout<<"\n\nParametry auta to:\nCena: "<