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

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

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

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

#айти #код #кодинг #программирование #программист #cpp #java #javascript #itвроссии #itsphere #IT

Переопределение vs Перегрузка | Сетка — социальная сеть от hh.ru