Corrected throws (throw new is Java *not* C++!)
Everything compiles ok, but doesn't link. I've defined the static in the header files, so get multiple definitions. I knew it was wrong when I wrote it, but I've been doing so much Java recently it just didn't click.
None of this code is available from the website yet, but if you'd like to get hold of it, just email me.