Examples of Defining Template Member Functions


/************************************************************************
*

The following three examples illustrate the three ways to define template member functions:

Method 1

                                                                        *
************************************************************************/

      template <class T> class key
      {
      public:
            void f(T);
      };
      void key<char>::f(char) { /* ... */ }
      void key<int>::f(int ) { /* ... */ }

      void main()
      {
            int i = 9;
            key< int> keyobj;
            keyobj.f(i);
      }

/************************************************************************
*

Method 2

                                                                        *
************************************************************************/

      template <class T> class key
      {
      public:
            void f(T);
      };
      template <class T> void key <T>::f(T) { /* ... */ }

      void main()
      {
            int i = 9;
            key< int> keyobj;
            keyobj.f(i);
      }

/************************************************************************
*

Method 3

                                                                        *
************************************************************************/

      template <class T> class key
      {
      public:
            void f(T) { /* ... */ }
      };

      void main()
      {
            int i = 9;
            key< int> keyobj;
            keyobj.f(i);
      }