Wat is pure virtuele functie?
Bijna alle typen objectgeoriënteerd programmeren (OOP), waarmee programma's worden gemaakt en de secties code worden onderverdeeld in 'objecten', hebben een functie die een pure virtuele functie wordt genoemd en die verschilt van een virtuele functie. Ook bekend als een abstracte functie, fungeert een pure virtuele functie als een tijdelijke aanduiding voor andere variabelen en neemt informatie uit andere functies en klassen om de spaties in te vullen. Het voordeel van het gebruik van een pure virtuele functie is dat de informatie vervormbaar is en per gebruiker kan worden gewijzigd. Om te werken, moet er een afgeleide klasse zijn waaruit de gegevens worden verkregen.
Een virtuele functie is vergelijkbaar met de pure variant. Beide kunnen veranderen afhankelijk van de invoer van de gebruiker. Als een gebruiker bijvoorbeeld zijn of haar naam typt, verandert de virtuele functie voor het hele programma zodat deze aan de naam van die gebruiker voldoet. Het verschil is dat een virtuele functie niet afhankelijk is van andere klassen, omdat de virtuele functie zijn eigen lichaam heeft dat de gegevens doorgeeft aan andere klassen en functies die om de informatie vragen, in dit voorbeeld de gebruikersnaam.
Een pure virtuele functie heeft daarentegen geen body. Dit betekent dat de abstracte functie op zichzelf nutteloos is. Het heeft geen eigen gegevens en, als de abstracte klasse zonder informatie wordt aangeroepen, kan dit een fout veroorzaken. De pure virtuele functie moet een afgeleide klasse hebben, of een klasse die gegevens verzamelt om de abstracte functie te laten werken.
De afgeleide klasse kan een vraag of een gebied zijn waar een gebruiker een soort invoer invoert, zoals een tekstveld. De informatie uit deze klasse wordt vervolgens overgedragen naar alle verbonden pure virtuele functies, waarbij de antwoorden worden gecoördineerd. Tenzij de abstracte functie specifiek wordt genoemd, wordt deze niet geactiveerd tenzij er direct gegevens beschikbaar zijn.
Pure virtuele functies hebben verschillende voordelen. Het gebruik van een abstracte functie in plaats van het creëren van een volledig codeerlichaam beperkt aanzienlijk de hoeveelheid code die de programmeur moet maken, vooral voor grote programma's die continu dezelfde informatie gebruiken. De abstracte functie kan ook door de programmeur worden aangepast om de manier waarop het programma met gegevens omgaat te wijzigen om het efficiënter te maken. De informatie is gebaseerd op afgeleide klassen, dus programma's met vragen en complexe invoer passen de gegevens aan op basis van de invoer van de gebruiker zonder dat het programma per ongeluk een andere sectie met irrelevante code aanroept.