I have 2 classes, and within each there is a mention of the other. In the code, one of them will always have to appear above the other, and when that happens I get errors.

Code:
class controltype {
      public:
             virtual void gettargetinfo(fighter *newtarget){};
};

class fighter: public spaceobject {
      public:
             controltype *controller;
};
what can I do? Seems like a trivial problem to fix, but I can't get around it.