I'd personally prefer some white space to separate the ctor/dtor, public funcs, and virtual funcs, just for readability