Hva er ren virtuell funksjon?
Nesten alle typer objektorientert programmering (OOP), som lager programmer og skiller kodeseksjonene i "objekter", har en funksjon som kalles en ren virtuell funksjon, som er forskjellig fra en virtuell funksjon. Også kjent som en abstrakt funksjon, fungerer en ren virtuell funksjon som en plassholder for andre variabler og tar informasjon fra andre funksjoner og klasser for å fylle ut feltene. Fordelen med å bruke en ren virtuell funksjon er at informasjonen er formbar og kan endres i henhold til hver bruker. For å fungere, må det være en avledet klasse som dataene er hentet fra.
En virtuell funksjon ligner på den rene varianten. Begge kan endre seg avhengig av brukerens innspill. Hvis en bruker for eksempel skriver inn navnet sitt, endres den virtuelle funksjonen for hele programmet for å imøtekomme brukerens navn. Forskjellen er at en virtuell funksjon ikke er avhengig av andre klasser, fordi den virtuelle funksjonen har et eget organ som overfører dataene til andre klasser og funksjoner som krever informasjonen, i dette eksemplet brukerens navn.
En ren virtuell funksjon har derimot ingen kropp. Dette betyr at den abstrakte funksjonen i seg selv er ubrukelig. Den har ingen egne data, og hvis den abstrakte klassen kalles uten informasjon, kan det føre til en feil. Den rene virtuelle funksjonen må ha en avledet klasse, eller en klasse som samler data for at den abstrakte funksjonen skal fungere.
Den avledede klassen kan være et spørsmål eller et område der en bruker legger inn en slags input, for eksempel et tekstfelt. Informasjonen fra denne klassen overføres deretter til alle tilkoblede rene virtuelle funksjoner, og koordinerer svarene. Med mindre den abstrakte funksjonen heter spesifikt, vil den ikke aktiveres med mindre det er lett tilgjengelig data.
Rene virtuelle funksjoner har flere fordeler. Å bruke en abstrakt funksjon i stedet for å lage et helt kodende organ, begrenser i betydelig grad mengden kode programmereren trenger å lage, spesielt for store programmer som bruker den samme informasjonen kontinuerlig. Den abstrakte funksjonen kan også finjusteres av programmereren for å endre hvordan programmet håndterer data for å gjøre det mer effektivt. Informasjonen er basert på avledede klasser, så programmer med spørsmål og kompleks inndata vil skreddersy dataene i henhold til brukerens innspill uten at programmet ved et uhell kaller en annen del av irrelevant kode.