In the books that I have read, all of them state that the biggest problem with multiple inheritance like C++ has is because of what you mentioned, if the multiple classes have the same method name, how do you know which one you are calling? I don't know C++, so again this is from what I have read.
An example that worked well for me is let's say you have two classes, Airplane and Boat. Each one has a direction() method. Airplanes can move in x, y, and z directions, Boats can move in x and y directions. Now let's say you have a class called FloatPlane (a plane that can land and take off on
water). This class inherits from Airplane and Boat. Which implementation of direction() is going to be used? If you have a class that inherits from a whole bunch of other classes, and possibly each one of those classes has multiple inheritance, I can imagine this would be a logistical nightmare.
Jason