I have an application that has several objects (about 50 so far, but growing). There is only one instance of each of these objects in the app and these instances get shared
If you have RTTI enabled, you can get the class name using typeid.
One question, why are you using a factory rather than using a singleton pattern for each class?