Статья подготовлена для студентов курса «Разработчик C+» в образовательном проекте OTUS. Задачка по C++, с которой мы предлагаем ознакомиться, может показаться сложнее, чем представляется на первый взгляд. Итак, у нас есть 2 простых класса: А теперь скажите, что выведут два кусочка кода, написанных ниже: Решение Не думайте, что всё так просто, как может показаться с первого взгляда, ведь решение будет следующим: 1) в 1-м случае мы получим ошибку; 2) в 2-м случае выведется «I am the parent class». А теперь подробнее. В нашей задаче мы имеем дело с механизмом скрытия имён и перегрузки функций. В 1-м случае внутри производного класса функция переопределит родительские функции вне зависимости от их сигнатуры. В результате, несмотря на то, что в родительском классе есть функция, соответствующая вызываемой внутри main(), компилятор об этом не узнает, поэтому выдаст нам ошибку: Но почему же тогда во 2-м случае ошибки не будет, ведь мы тоже используем для вызова print() объект Deri
Задача по C++, которая сложнее, чем кажется
29 ноября 201929 ноя 2019
2668
1 мин