Can you give me an example of how to properly invoke a constructor from another file?
You already have that. When you declare an instance, like:
the constructor is called to create cat1. You do NOT directly invoke the constructor. Ever.
Even using pointers,
Cat *pCat = new Cat();
is not directly invoking the constructor. The constructor IS invoked, but indirectly, just as in the object case.
I do not have a problem with any of the other classes I have and I handled them the same way so i dont really see what the problem is.
That is not true. You are NOT handling them the same way:
static Ghost ghost1;
There is no attempt to call to the constructor, like so:
anywhere in the code. That would be equivalent to the incorrect code I pointed out.