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