10.7. Template Class Static Members

Chapter 5 introduces static data members (Section 5.3 on page 226) and static member functions (Section 5.4 on page 229). This section explores their use with template classes.

Let's start with the format of a template class with a static data member.

template <class TYPE> 
class Class_name {
   . . .
   static Type static_data_member;              // static data member
   . . .

Recall that static data members create a single, encapsulated member shared by all objects you instantiate from a class. With template classes, each instantiation with a different type creates a separate static data member. This implies a one-to-one correspondence between a template class instantiation and a static data member for a particular type. ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.