/************************************************************************ *
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); }