Report Offensive Message
You wrote, "you need to prototype functions in a .h file", as if that is a bad thing? It isn't. That is the way all languages should handle prototypes. The reason is that anyone interfacing with the object needs to have the prototypes during compile time, in order to ensure run time compatibility.