Klasa zaprzyjaźniona
Z Wikipedii
Klasa zaprzyjaźniona - w języku programowania C++ inna klasa, która ma dostęp do prywatnych składników danej klasy, a konkretniej: której funkcje składowe (metody) mają dostęp do prywatnych składników danej klasy. Przyjaźń deklaruje zawsze klasa która chce by inna klasa miała dostęp do jej składników prywatnych - nigdy na odwrót.
[edytuj] Właściwości
- Nie jest ważne w którym miejscu klasy (private, protected, public) zostanie przyjaźń zadeklarowana. Przyjaźnie danej klasy są stosunkowo ważne z punktu widzenia projektanta stąd też deklaracje przyjaźni zaleca się deklarować na samym początku deklaracji klasy.
- Klasa może być przyjacielem wielu klas.
- Klasa może mieć wielu przyjaciół (zarówno klasy jak i funkcje).
- Przyjaźń nie jest przechodnia. Oznacza to, że gdy klasa C jest przyjacielem klasy B, a klasa B jest przyjacielem klasy A, to nie oznacza to, że klasa C jest przyjacielem klasy A (przyjaciel mojego przyjaciela nie musi być moim przyjacielem).
- Przyjaźń nie jest dziedziczona.
[edytuj] Przykład w C++
class A { friend class B; // deklaracja przyjaźni private: int x; // zmienna w sekcji prywatnej }; class B { public: void wpiszIks( A& obiekt , const int wartosc ) { obiekt.x = wartosc; // niemożliwe bez deklaracji przyjaźni return; } };