У меня нет опыта работы с C ++, и я вырос в Java. Недавно в интервью меня спросили, почему Java не допускает множественного наследования, и ответ был довольно простым. Однако мне все еще интересно, как C ++ справляется с этим, поскольку он позволяет наследовать более чем от одного класса.
В частности, скажем, есть класс под названием MechanicalEngineer
, а другой - под названием ElectricalEngineer
. У обоих есть метод под названием buildRobot ()
.
Что произойдет, если мы создадим третий класс RoboticsEngineer
, который наследуется от обоих и не переопределяет этот метод, и вы просто вызываете:
(some instance of RoboticsEngineer).buildRobot()
Будет ли сгенерировано исключение или будет использован метод одного из суперклассов? Если да, то как компилятор узнает, какой класс использовать?