You can't forward declare classes like that. I think you can omit the braces but it could still cause problems. You'd still have to fully define it in order to instantiate an object of that type.
Is it a problem to have it above main?
If you really don't want it there, why not create a separate header file for it?
Yeah, I think it's only used that way for referencing it in function prototypes and the like.
If you actually want an instance of it (such as your code above) then you need the class to be fully defined, be it before main or in an included file.