Co je Pure Virtual Function?
Téměř všechny typy objektově orientovaného programování (OOP), které vytváří programy a rozděluje části kódu na „objekty“, mají funkci nazvanou čistě virtuální funkce, která se liší od virtuální funkce. Čistá virtuální funkce, známá také jako abstraktní funkce, slouží jako zástupný symbol pro jiné proměnné a pro vyplnění mezer bere informace z jiných funkcí a tříd. Výhodou použití čisté virtuální funkce je to, že informace jsou poddajné a lze je měnit podle každého uživatele. Pro práci musí existovat odvozená třída, ze které jsou data získávána.
Virtuální funkce je podobná čisté variantě. Oba se mohou měnit v závislosti na vstupu uživatele. Pokud například uživatel zadá své jméno, virtuální funkce se změní pro celý program tak, aby vyhovoval jeho jménu. Rozdíl je v tom, že virtuální funkce není závislá na jiných třídách, protože virtuální funkce má své vlastní tělo, které předává data spolu s jinými třídami a funkcemi, které vyžadují informace, v tomto příkladu jméno uživatele.
Naproti tomu čistá virtuální funkce nemá žádné tělo. To znamená, že abstraktní funkce je sama o sobě zbytečná. Nemá žádná vlastní data a pokud je abstraktní třída volána bez jakýchkoli informací, může to vést k chybě. Čistá virtuální funkce musí mít odvozenou třídu nebo třídu, která shromažďuje data pro abstraktní funkci, aby fungovala.
Odvozená třída může být otázkou nebo oblastí, do níž uživatel zadá nějaký druh vstupu, například textové pole. Informace z této třídy se poté přenesou do všech připojených čistě virtuálních funkcí a koordinují odpovědi. Pokud nebude abstraktní funkce výslovně nazývána, nebude aktivována, pokud nebudou k dispozici snadno dostupná data.
Čisté virtuální funkce mají několik výhod. Použití abstraktní funkce namísto vytvoření celého kódovacího těla podstatně omezuje množství kódu, které programátor potřebuje vytvořit, zejména pro velké programy, které neustále používají stejné informace. Abstraktní funkce může být programátorem vylepšena tak, aby změnila způsob, jakým program zpracovává data, aby byla efektivnější. Informace jsou založeny na odvozených třídách, takže programy s otázkami a složitým vstupem upraví data podle vstupu uživatele, aniž by program omylem zavolal jinou část irelevantního kódu.