Programowanie obiektowe, C++
Przyjaźń
[lekcja] 7. O przyjaźni słów kilka..Przyjaźń
Zdarza się, że jakaś klasa/funkcja potrzebuje dostępu do prywatnych lub chronionych składowych klasy. Aby zezwolić na dostęp, używa się deklaracji
przyjaźni miedzy klasą a inną klasą lub funkcją.
Deklaracje przyjaźni umieszcza się w klasie, która ma udostępniać swoje składowe wybranym klasom i/lub funkcjom.
class Klasa
{
int moj_tajny_int;
friend class ZaprzyjaznionaKlasa;
friend void ZaprzyjaznionaFunkcja( Klasa & );
};
class ZaprzyjaznionaKlasa
{
public:
void metoda( Klasa & k )
{
k.moj_tajny_int = 0;
}
};
void ZaprzyjaznionaFunkcja( Klasa & k )
{
k.moj_tajny_int = 0;
}
int main()
{
Klasa k;
ZaprzyjaznionaKlasa zk;
zk.metoda( k );
ZaprzyjaznionaFunkcja( k );
}
Funkcja zaprzyjaźniona może być zdefiniowana wewnątrz klasy:
class Klasa
{
friend void funkcja()
{
}
};
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.