// itickable.h
//
// Interface definition of an object that is updated during the tick cycle.
//
#ifndef DEMO_ITICKABLE_H
#define DEMO_ITICKABLE_H

namespace demo
{

namespace obj
{

class ITickable
{
  public:
    // CONSTRUCTORS
    /**
     * Destruct the tickable.
     */
    ~ITickable();

    // MEMBER FUNCTIONS
    /**
     * Prepare for the next tick cycle.
     */
    virtual void preTick() = 0;

    /**
     * Update the object.
     * @param dt The elapsed time in seconds.
     */
    virtual void tick( float dt ) = 0;

    /**
     * Clean up after the tick cycle.
     */
    virtual void postTick() = 0;
};

// CONSTRUCTORS
inline
ITickable::~ITickable()
{
}

} // End nspc obj

} // End nspc demo

#endif // DEMO_ITICKABLE_H

// itickable.h
//
// Interface definition of an object that is updated during the tick cycle.
//
#ifndef DEMO_ITICKABLE_H
#define DEMO_ITICKABLE_H

namespace demo
{

namespace obj
{

class ITickable
{
  public:
    // CONSTRUCTORS
    ~ITickable();

    // MEMBER FUNCTIONS
    /**
     * Prepare for the next tick cycle.
     */
    virtual void preTick() = 0;

    /**
     * Update the object.
     * @param dt The elapsed time.
     */
    virtual void tick( float dt ) = 0;

    /**
     * Clean up after the tick cycle.
     */
    virtual void postTick() = 0;
};

// CONSTRUCTORS
ITickable::~ITickable()
{
}

} // End nspc obj

} // End nspc demo

#endif // DEMO_ITICKABLE_H

--- 
+++ 
@@ -15,6 +15,9 @@
 {
   public:
     // CONSTRUCTORS
+    /**
+     * Destruct the tickable.
+     */
     ~ITickable();
 
     // MEMBER FUNCTIONS
@@ -25,7 +28,7 @@
 
     /**
      * Update the object.
-     * @param dt The elapsed time.
+     * @param dt The elapsed time in seconds.
      */
     virtual void tick( float dt ) = 0;
 
@@ -36,6 +39,7 @@
 };
 
 // CONSTRUCTORS
+inline
 ITickable::~ITickable()
 {
 }
Clean up the tickable definition.
