Язык программирования C/С++
21.08
Переопределение vs Перегрузка
🔄 Переопределение функций - это термин, связанный с полиморфизмом. Если вы объявляете виртуальную функцию в базовом классе с определенной реализацией, то в производном классе вы можете переопределить её поведение, используя тот же самый сигнатур (сигнатура функции - это то, что отличает одну функцию от другой). Если ключевое слово virtual отсутствует в базовом классе, то в производном классе все равно можно создать функцию с таким же сигнатуром, но она не будет переопределять её. Начиная с C++11, также появился спецификатор #override , который помогает убедиться, что вы случайно не забыли переопределить #функцию базового класса.
🔧 Переопределение функций позволяет вам предоставлять конкретные реализации в производных классах для функций, которые уже определены в базовом классе.
⚙️ С другой стороны, перегрузка функций не имеет никакого отношения к полиморфизму. Перегрузка происходит, когда у вас есть две функции с одинаковым именем, одинаковым возвращаемым типом, но разным количеством или типами параметров, или квалификаторов.
#айти #код #кодинг #программирование #программист #cpp #java #javascript #itвроссии #itsphere #IT· 21.08
Как то на собеседовании задали вопрос: "к чему относится перегрузка функций? Инкапсуляция, наследование, полиморфизм? " Ответил, что полиморфизм, ибо, по моему мнению, он ближе всего подходит. А он не подходит, оказывается) Какой же правильный ответ все-таки? Или правильный вопрос...
ответить
еще контент в этом сообществе
еще контент в этом соообществе
Язык программирования C/С++
21.08
войдите, чтобы увидеть
и подписаться на интересных профи