Переопределение vs Перегрузка

🔄 Переопределение функций - это термин, связанный с полиморфизмом. Если вы объявляете виртуальную функцию в базовом классе с определенной реализацией, то в производном классе вы можете переопределить её поведение, используя тот же самый сигнатур (сигнатура функции - это то, что отличает одну функцию от другой). Если ключевое слово virtual отсутствует в базовом классе, то в производном классе все равно можно создать функцию с таким же сигнатуром, но она не будет переопределять её. Начиная с C++11, также появился спецификатор #override , который помогает убедиться, что вы случайно не забыли переопределить #функцию базового класса.

🔧 Переопределение функций позволяет вам предоставлять конкретные реализации в производных классах для функций, которые уже определены в базовом классе.

⚙️ С другой стороны, перегрузка функций не имеет никакого отношения к полиморфизму. Перегрузка происходит, когда у вас есть две функции с одинаковым именем, одинаковым возвращаемым типом, но разным количеством или типами параметров, или квалификаторов.

#айти #код #кодинг #программирование #программист #cpp #java #javascript #itвроссии #itsphere #IT
Переопределение vs Перегрузка | Сетка — новая социальная сеть от hh.ru
repost

342

input message

напишите коммент

Как то на собеседовании задали вопрос: "к чему относится перегрузка функций? Инкапсуляция, наследование, полиморфизм? " Ответил, что полиморфизм, ибо, по моему мнению, он ближе всего подходит. А он не подходит, оказывается) Какой же правильный ответ все-таки? Или правильный вопрос...

ответить

Это я уже понял)

ответить

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь