Examples of Accessing Class Template Members

Given a class template:

template<class T> class vehicle
{
public:
    vehicle() { /* ... */ }    // constructor
    ~vehicle() {};             // destructor
    T kind[16];
    T* drive();
    static void roadmap();
    // ...
};

and the declaration:

vehicle<char> bicycle; // instantiates the template

the constructor, the constructed object, and the member function drive() can be accessed with any of the following (assuming the standard header file <string.h> is included in the program file):

/------------------------------------------------------------------------------\
| constructor                   | "vehicle<char> bicycle;                      |
|                               | // constructor called automatically          |
|                               | // object bicycle created"                   |
|-------------------------------+----------------------------------------------|
| object "bicycle"              | "strcpy (bicycle.kind, "10 speed");          |
|                               | bicycle.kind[0] = '2';"                      |
|-------------------------------+----------------------------------------------|
| function "drive()"            | "char* n = bicycle.drive();"                 |
|-------------------------------+----------------------------------------------|
| function "roadmap()"          | "vehicle<char>::roadmap();"                  |
\------------------------------------------------------------------------------/