Only M classes may be used in multi-inheritance.
Only the interface may be inherited. Therefore all M classes
must be pure virtual
Inherit from the CBase-derived class first to achieve
the correct layout of the v-table.
Example:
class CDerivedClass : public CBase, public MSomeObserver
M classes may only be derived from other M classes.