klasa przyjaciół z ograniczonym dostępem

Chcę stworzyć klasę przyjaciół klasy A klasy B. Chcę to zrobić, ponieważ one bardzo się wzajemnie oddziałują, a A musi zmieniać wewnętrzne klasy B (których nie chcę ujawniać za pomocą publiczności). Ale chcę mieć pewność, że ma dostęp tylko do kilku wybranych funkcji, a nie do wszystkich funkcji.

Przykład:

class A
{
};

class B
{
private:
 void setState();
void setFlags();
friend class A
};

Chcę, aby A był w stanie uzyskać dostęp do setState, ale nie do setFlags ... Czy istnieje wzorzec projektowy lub fajny sposób na zrobienie tego, czy też pozostawiam w tym przypadku pełny dostęp lub brak dostępu.

Dzięki

questionAnswers(3)

yourAnswerToTheQuestion