Skip to main content

Co je to čistá virtuální funkce?

Téměř všechny typy objektově orientovaného programování (OOP), které vytváří programy a odděluje části kódu na „objekty“, mají funkci nazývanou čistou virtuální funkci, která se liší od virtuální funkce.Také známá jako abstraktní funkce, čistá virtuální funkce působí jako zástupný symbol pro jiné proměnné a přebírá informace z jiných funkcí a tříd, aby vyplnila mezery.Výhodou použití čisté virtuální funkce je to, že informace jsou obchodovatelné a lze je změnit podle každého uživatele.Pro práci musí existovat odvozená třída, ze které jsou data získána.

Virtuální funkce je podobná čisté variantě.Oba jsou schopni se změnit v závislosti na vstupu uživatele.Například, pokud uživatel zadává ve svém jménu, virtuální funkce se změní pro celý program, aby vyhovoval názvu tohoto uživatele.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 název uživatele.

Čistý virtuálníNaproti tomu funkce nemá žádné tělo.To znamená, že samo o sobě je abstraktní funkce zbytečná.Nemá žádná vlastní data a pokud je třída abstraktní 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..Informace z této třídy jsou poté přeneseny na všechny připojené čisté virtuální funkce a koordinují odpovědi.Pokud není abstraktní funkce výslovně volána, nebude se aktivovat, pokud nejsou existují snadno dodaná 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 musí vytvořit, zejména pro velké programy, které nepřetržitě používají stejné informace.Abstraktní funkce může být také vyladěna programátorem, aby změnil způsob, jakým program zpracovává data, aby byl efektivnější.Informace jsou založeny na odvozených třídách, takže programy s otázkami a složitými vstupy přizpůsobí data podle vstupu uživatele, aniž by program náhodně volal jinou část irelevantního kódu.