Virtual inheritance to generalise code among two different abstract child classes
I have an interface which is behavioral in the sense that provides some functionality that can be applied to a certain data shape. For example, a hierarchical data structure.