Klasa zaprzyjaźniona – klasa, która ma dostęp do prywatnych i chronionych składników danej klasy, a konkretniej: której funkcje składowe (metody) mają dostęp do prywatnych i chronionych 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.

Właściwości Nieistotne jest, gdzie (private, protected, public) zadeklaruje się przyjaźń. Przyjaźnie danej klasy są stosunkowo ważne z punktu widzenia projektanta, dlatego, w celu przejrzystości kodu dobrze jest zrobić to 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.

Przykład w C++ class B; //deklaracja zapowiadająca

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;

Zobacz też klasa funkcja zaprzyjaźniona programowanie obiektowe

Kategoria:Programowanie obiektowe