C++ also supports the notion of friends: cooperative classes that are permitted to see each other's private parts.
UML is not dessert topping and floor wax.
The task of the software development team is to engineer the illusion of simplicity.
The function of good software is to make the complex appear to be simple.
Ah, but who do you think created the chaos?
Multiple Inheritance is like a parachute. You don't often need it, but when you do, you really need it.