Vad är ren virtuell funktion?
Nästan alla typer av objektorienterad programmering (OOP), som skapar program och separerar kodavsnitten i "objekt", har en funktion som kallas en ren virtuell funktion, som skiljer sig från en virtuell funktion. Även känd som en abstrakt funktion fungerar en ren virtuell funktion som en platshållare för andra variabler och tar information från andra funktioner och klasser för att fylla i tomma ämnen. Fördelen med att använda en ren virtuell funktion är att informationen är formbar och kan ändras beroende på varje användare. För att fungera måste det finnas en härledd klass från vilken data samlas in.
En virtuell funktion liknar den rena varianten. Båda kan ändras beroende på användarens inmatning. Om en användare till exempel skriver in sitt namn kommer den virtuella funktionen att ändras för hela programmet för att anpassa användarens namn. Skillnaden är att en virtuell funktion inte är beroende av andra klasser, eftersom den virtuella funktionen har en egen kropp som överför data till andra klasser och funktioner som kräver information, i detta exempel användarens namn.
En ren virtuell funktion har däremot ingen kropp. Detta innebär att den abstrakta funktionen i sig är värdelös. Den har inga egna uppgifter och om den abstrakta klassen kallas utan någon information kan den resultera i ett fel. Den rena virtuella funktionen måste ha en härledd klass eller en klass som samlar data för den abstrakta funktionen för att fungera.
Den härledda klassen kan vara en fråga eller ett område där en användare matar in någon form av inmatning, till exempel ett textfält. Informationen från denna klass överförs sedan till alla anslutna rena virtuella funktioner, koordinerar svaren. Om inte den abstrakta funktionen kallas specifikt, kommer den inte att aktiveras om det inte finns tillhandahållna data.
Rena virtuella funktioner har flera fördelar. Att använda en abstrakt funktion istället för att skapa ett helt kodande organ begränsar avsevärt mängden kod som programmeraren behöver skapa, särskilt för stora program som använder samma information kontinuerligt. Den abstrakta funktionen kan också justeras av programmeraren för att ändra hur programmet hanterar data för att göra det mer effektivt. Informationen är baserad på härledda klasser, så program med frågor och komplex inmatning kommer att skräddarsy data enligt användarens inmatning utan att programmet av misstag kallar en annan sektion av irrelevant kod.