According to Stroustrup Friendship is neither inherited nor transitive. class A { friend class B;} class B { friend class C;} class C{ //C is not a friend of A, despite being a friend of a friend of A } class D: public B { // D is not a friend of A, despite being derived from a friend of A }