The C++ header files don't have an extension, the source files do (this is an old C++ convention, eg the STL has things like "#include <map>" or "#include <string>"
The WebVTT::FileParser is an abstract class, (partially) implemented in libwebvttxx. You still need to implement the virtual functions for it, so we'll probably want some shared sources used by all the tests implementing subclasses of FileParser.
Things left to do in the bindings: adding proper reference counting to the cue object, so that we don't delete a cue inappropriately, would be useful. It should be as simple as adding struct webvtt_refcount_t refs; to the webvtt_cue_t structure, and modifying the constructor to initialize it with a reference count of '1', and modifying webvtt_delete_cue to only actually delete if the derefenced refcount is equal to 0 (And probably rename delete_cue to release_cue), and implement a function to add a reference.
The problem with that is, being C code, the 'refs' member would be public and modifiable by anyone, so it could be abused potentially. Alternatively, it could be hidden in some way, but I don't really like that option much for other reasons. Besides that, reference counting in C is really painful and nobody should ever have to do that :( (If we had a more COM-style model, it could be workable, but it's kind of ill-advised, from a portability standpoint)
There's nothing in the C++ bindings yet for dealing with cue text, so that's another thing on the TODO list there.