В чем разница между виртуальной функцией и переопределением функции?
В чем разница между виртуальной функцией и переопределением функции?

Видео: В чем разница между виртуальной функцией и переопределением функции?

Видео: В чем разница между виртуальной функцией и переопределением функции?
Видео: Виртуальные методы класса c++. Ключевое слово virtual. Ключевое слово override. ООП. C++ #103 2024, Декабрь
Anonim

Виртуальные функции не может быть статичным, а также не может быть другом функция другого класса. Они всегда определены в базовом классе и отвергнутый в производном классе. Для производного класса не обязательно отвергать (или переопределить виртуальная функция ), в этом случае версия базового класса функция используется.

Кроме того, в чем разница между виртуальной функцией и чистой виртуальной функцией?

Главный разница между ' виртуальная функция 'и' чистая виртуальная функция ' в том, что ' виртуальная функция 'имеет свое определение в базовый класс, а также наследующие производные классы переопределяют его. В чистая виртуальная функция не имеет определения в базовый класс, и все наследующие производные классы должны его переопределить.

Следовательно, возникает вопрос, что такое переопределение функций в C ++? Переопределение функций C ++ . Если производный класс определяет то же самое функция как определено в его базовом классе, он известен как переопределение функции в C ++. Он используется для достижения полиморфизма во время выполнения. Это позволяет вам предоставить конкретную реализацию функция который уже предоставляется его базовым классом.

Точно так же люди спрашивают, почему мы используем виртуальные функции?

Виртуальные функции находятся использовал для поддержки «Полиморфизма времени выполнения». Когда виртуальная функция вызывается с помощью указателя базового класса, компилятор решает во время выполнения, какая версия функция то есть должна быть вызвана версия базового класса или версия переопределенного производного класса. Это называется полиморфизмом времени выполнения.

Можете ли вы переопределить не виртуальную функцию в C ++?

В c ++ все члены класса функции находятся не - виртуальный по умолчанию. Они жестяная банка быть сделано виртуальный используя виртуальный ключевое слово в функция подпись. Как указано выше если в функция базового класса производится виртуальный затем функция производных или дочерних классов функция с таким же именем может перекрыть базовый класс функция.

Рекомендуемые: