10.10. Template Friend Classes

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

template <class TYPE> 
class Class_name {
   friend class Class_name1;                 // friend class
private:
   . . .
public:
   . . .
};

Class_name and Class_name1 are tightly coupled, since Class_name1 and all of its member functions have access to Class_name's nonpublic sections. The choices for friendship with template class instantiations are the same as friend functions.

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

  2. A template class instantiated with one type may be a friend to one template class instantiation ...

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.