Каква е разликата между виртуална функция и отмяна на функция?
Каква е разликата между виртуална функция и отмяна на функция?

Видео: Каква е разликата между виртуална функция и отмяна на функция?

Видео: Каква е разликата между виртуална функция и отмяна на функция?
Видео: Как работает e-sim на iPhone 2024, Може
Anonim

Виртуални функции не може да бъде статичен и също не може да бъде приятел функция от друг клас. Те винаги са дефинирани в базов клас и отменено в производен клас. Не е задължително за производен клас отменя (или предефинирайте виртуална функция ), в този случай версия на базовия клас на функция се използва.

Освен това, каква е разликата между виртуална функция и чиста виртуална функция?

Основното разлика между ' виртуална функция“и „чиста виртуална функция ' е това ' виртуална функция “има своето определение в базов клас, а също и наследяващите производни класове го предефинират. В чиста виртуална функция няма определение в базов клас и всички наследяващи производни класове трябва да го предефинират.

Впоследствие въпросът е какво е отмяна на функцията в C++? Отмяна на функцията на C++ . Ако извлеченият клас дефинира същото функция както е дефинирано в неговия базов клас, той е известен като отмяна на функцията в C++. Използва се за постигане на полиморфизъм по време на изпълнение. Тя ви позволява да осигурите конкретно изпълнение на функция което вече е осигурено от неговия базов клас.

По същия начин хората питат защо използваме виртуални функции?

Виртуални функции са използван да поддържа "Полиморфизъм по време на изпълнение". Когато виртуална функция се извиква чрез използване на указател на базов клас, компилаторът решава по време на изпълнение коя версия на функция т.е. версията на базовия клас или отменената версия на производен клас трябва да се извика. Това се нарича полиморфизъм по време на изпълнение.

Можете ли да замените невиртуална функция в C++?

В C++ всички членове на класа функции са не - виртуален по подразбиране. Те мога бъде направено виртуален чрез използване на виртуален ключова дума в функция подпис. Както беше посочено по-горе ако на функция от базов клас се прави виртуален тогава функция от производен или дочерен клас функция със същото име може да отмени на базовия клас функция.

Препоръчано: