variable or field 'DrawBullet' declared void

I have a class called classBullet. It inherits another class that I've been using and have no problems with. I've been using classBullet without issue as well but when I try to pass a classBullet object by reference to another function I get this error :

variable or field 'DrawBullet' declared void

and it won't compile.

class classBullet : classBitHandler
{
  public:
    classBullet();
    byte Dir();
    classMotionData cMotionData;
    bool Valid_Get();
    void Valid_Set(bool bolValid);
    void Fire(Point ptStart, byte _bytDir);
    bool Move();
    Point LocNext();

  private:
    void Dir_Set(byte _bytDir);
};

void classBullet::Dir_Set(byte _bytDir)
{
  classBullet::setBits_ulng(&cMotionData.ulngData, defBit_BulletDir_Start, defBit_BulletDir_End, _bytDir);
}

byte classBullet::Dir()
{
  return (byte)classBullet::getByte_ulng(&cMotionData.ulngData, defBit_BulletDir_Start, defBit_BulletDir_End);
}
void DrawBullet(classBullet *cBullet)  //// <-- why is this giving me an error message?
{
  
}


void DrawBullets()
{
  DrawBullet(&cPlayer.cBullet);  // <--- pass object by reference
    
  
}

If I just use the classBullet object in the calling function and do all my work there it has no problem but suddenly, when I send it as a pointer, the IDE cries and gets all whiny about it.
??!?
why is this

Is the second code snippet in a .ino file (ie not a .cpp file) ?
If so, first suspect an unwanted prototype generation for function, in this case DrawBullet(), which can give rise to mysterious error messages.

If you can't fix it, show how this is declared: cPlayer.cBullet

I think something missing or extra ABOVE the "DrawBullet()" declaration is causing it to be treated as something other than a global function declaration. For example, a missing '}' on the previous declaration could do that.

thank you for your replies,
the code compiles and runs fine until I try to send the classBullet as a reference parameter, so I draw from that that there is no missing parentheses.

the alternate suggestion requested I show you how the cBullet is declared in classPlayer.

this is the declaration of classPlayer

class classPlayer
{
  public:
    classPlayer();
    classMotionData cMotionData;
    classBullet cBullet;
    Point ScreenMin;
    Point ScreenMax;
    void Move();
    int Score;
    byte Health;
    byte Lives;
    byte Image;
    byte CanMove();
    bool canFire();

  private:
    byte bytMoveCounter = 0;
    byte bytMoveCounterMax = 8;
};

classPlayer::classPlayer()
  :
  ScreenMin(3, 1),
  ScreenMax(4, 2),
  Image(0),
  Score(0),
  Health(100),
  Lives(3),
  cMotionData(),
  cBullet()
{
  ScreenMin = Point(3, 1);
  ScreenMax = Point(4, 2);
  Point ptLoc = Point(15, 14);
  cMotionData.Loc_Set(ptLoc);
  cMotionData.ScreenLoc_Set(Point(3, 1));
  cMotionData.MapData_Set(defMapData_Player);
}

I don't know why I can't send the player's bullet to a working function as a reference variable...

Try creating a function prototype like this and put it high up in the global definitions.
void DrawBullet(classBullet *cBullet) ;
to see if the error message goes away or changes.
In a .ino file, the Arduino builder of the IDE creates function prototypes to allow users to use resources before these are declared. It sometimes gets things in the wrong order causing misleading error messages. This could be the case here.