When I define a pointer to a class the error:expected constructor, destructor, or type conversion before '*' token happened
<pre><code>int buffer[gSizeOfGrid][gSizeOfGrid];
CList *currentCList;
Grid *currentGrid; //this line get the error
int aroundinfo[4];
//other functions are not revelant maybe? They don't
//use currentGrid.
</code></pre>

<p>the class Grid has the header:</p>

<pre><code>class Grid
{
public:
    Grid();
    //create default cList object for the grid .
    Grid(CList*);
    //create cList and bind existing clist object.
    bool rebind(CList*);
    //rebind cList.
    ~Grid();
    void init(int ants,int bugs);
    //init a grid with ants and bugs according to parameter.
    void GetSnapshot();
    //synchronize grid buffer with clist.
    void Step();
    //make the world go on!
    bool spawn(Creature&amp;,Position);
    //create a creature on the grid.
    //if success, return true.
    //if there are already another creature return false.
    void move(Position,int);
    void eat(Position,int);
    void breed(Position,int);
    void destroy(Position);
private:
    CList* theList;
};
</code></pre>

<p>the Clist Class looks the same but is Okay in declaration:</p>

<pre><code>using namespace std;
class CList
{
public:
    CList();
    int CreateObject(Creature&amp;,Position);
    Creature&amp; GetObject(int);
    bool RemoveObject(Position);
    bool RemoveObject(int);
    int getType(Position);
    void cleanup();
    vector&lt;Creature*&gt; list;
    int size();
};
</code></pre>

<p>Why the Grid* declaration goes wrong but CList* is OK? Thank you!</p>
