Now I am puzzled. What gave you this idea? The IDE doesn't enforce syntax, and the compiler is a C++ compiler.
The IDE blunders with a few things still, classes not working can be a side-effect. Use of user defined types usually indicates some use of references, if this is the case with ali250, then there is a solution at hand.
this code for example won't compile:
void foofunc( foo &f )
f.a = random( 0, 0xffff );
The fix for this case is to add the function prototype below the struct.
void foofunc( foo &f );
If this is not the problem, you can still use classes in other files, and use the 'extern' keyword on variables you want to be seen across different files.
Globals suck though, even more as you want classes to access them. The variables are probably better off as static members of the classes or in interfaces themselves ( static members of their own class, say "configuration" class )