Using Separate Files
Member functions can be defined as inline in the same file
as the class's interface using the inline keyword or defined
in a separate file.
When we define the member functions of our class
templates in a separate implementation file, we define the
class' interface in a header file in the same way that we
would do for a non-template class.
To do so requires that we define or declare our member
function templates with the export keyword.
This tells the compiler that the functions can be used in
other "translation units" and may be compiled separately