I'm just personally neutral on multi-impl inheritance as I think it can be good if you like to split things up more (e.g.
class Entity : Collidable, Drawable where Collidable is something within a 2D worldspace and Drawable is something capable of being drawn using OpenGL. An invisible wall would only need Collidable, a GUI element only needs Drawable and potentially a different thingymajig if it needs mouse input support, e.t.c.) but I'm open to changing it Also, I'd need elaboration on pure virt base classes being gross too (as to me, I've not noticed anything being wrong or bad but thats mostly because I've not used it too much (all of my virtual base classes have some sort of implementation in them, usually due to having some behaviour that all derivs would need anyways)).