Множественное наследование, C ++ и одна и та же подпись метода в нескольких суперклассах

У меня нет опыта работы с C ++, и я вырос в Java. Недавно в интервью меня спросили, почему Java не допускает множественного наследования, и ответ был довольно простым. Однако мне все еще интересно, как C ++ справляется с этим, поскольку он позволяет наследовать более чем от одного класса.

В частности, скажем, есть класс под названием MechanicalEngineer , а другой - под названием ElectricalEngineer . У обоих есть метод под названием buildRobot () .

Что произойдет, если мы создадим третий класс RoboticsEngineer , который наследуется от обоих и не переопределяет этот метод, и вы просто вызываете:

(some instance of RoboticsEngineer).buildRobot()

Будет ли сгенерировано исключение или будет использован метод одного из суперклассов? Если да, то как компилятор узнает, какой класс использовать?

23
задан Sam 13 August 2013 в 23:28
поделиться