First off, two probable bugs:
1. This
SDL_Surface *screen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE|SDL_DOUBLEBUF);
could cause problems because it is executed before
InitSDL();
in main.
I recommend you instead do:
SDL_Surface *screen = NULL
and
InitSDL(); screen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE|SDL_DOUBLEBUF);
in main. Though I've never used SDL so I don't know for certain that it would cause a problem.
2. This seems to be insufficient error handling to me:
if(!InitWorld()) cout << "Error Initiating the world...";
i.e. the program probably shouldn't continue trying to run.
I also encourage the use of the preincrement operator whenever it can be used in place of the postincrement operator, as especially when it comes to user-defined types or STL it is more efficient.
I personally prefer to put a space between 'if' and the open bracket. Same with 'while' etc.
Oh, and watch your tabbing/spacing in main.