Team LiB   Previous Section   Next Section
friend specifier Grants access to private class members

decl-specifier := friend

The friend specifier declares a friend function, class, or template. A friend declaration can appear only in a class or class template definition. A friend has full access to the private members of the class that contains the friend declaration. A friend function declaration can be a function definition.

If a class template contains a friend declaration, all instantiations of the template grant friendship. If the friend is a template declaration, all instantiations of the template are friends. If the friend is a template specialization or instantiation, only that specialization or instantiation is a friend.

Friendship is not transitive, nor is it inherited.

Example

class list {
  friend bool operator==(const list& a, const list& b);
  friend class node;
  ...
};

See Also

class, declaration, template, Chapter 6, Chapter 7

    Team LiB   Previous Section   Next Section