Search code examples
c++encapsulationfriendprivate-members

In C++, does adding a friend to a class change its memory layout?


Also, does it matter where in the class you declare the friend ? Does it matter if you add a friend class or a friend function ?


Solution

  • No it doesn't. It's a purely compile-time thing: similar to access modifiers themselves.

    Despite the fact that you write the declaration inside the class, you don't really add a friend to a class. You'd basically declare something else as a friend of the class and simply allow it to access the class's private members, as if they were public.