10.9. Template Friend Functions

Friend Functions” on page 326 shows how nontemplate classes grant functions access to their nonpublic sections. This same concept applies to template classes with the following format.

template <class TYPE> 
class Class_name {
   . . .
   friend Type function_name(signature);        // friend function
   . . .
};

There are three choices for friendship with template class instantiations.

  1. A nontemplate function may be a friend to all template class instantiations.

  2. A template function instantiated with one type may be a friend to one template class instantiation with the same type (one-to-one).

  3. A template function instantiated with one type may be a friend to all template class instantiations of different types (one-to-many).

Here ...

Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.