Dlaczego tak
Deklaracja friend class B daje dostęp do składowych prywatnych klasy A tylko klasie B, więc B::f może odczytać a.x. Przyjaźń nie jest jednak dziedziczona ani przechodnia: klasa C, choć pochodzi od B, nie jest przyjacielem A i odwołanie a.x w C::g to błąd dostępu. Tym różni się przyjaźń od dziedziczenia, które przekazuje podklasom dostęp do składowych protected, ale nie do relacji przyjaźni.