Funzione virtuale
Da Wikipedia, l'enciclopedia libera.
Una funzione (o metodo) virtuale è parte importante del polimorfismo all'interno della metodologia di programmazione orientata agli oggetti (OOP, Object Oriented Programming)). Una funzione virtuale permette a una classe derivata di ridefinire (override) le funzioni che eredita dalle classi da cui deriva, anche nel caso in cui la classe derivata sia convertita al tipo dell'oggetto da cui è derivata.
Nella OOP, quando una classe derivata eredita da una classe base, si può usare un oggetto della classe derivata sia come oggetto di tipo della classe base sia come oggetto di tipo della classe derivata. Se alcune funzioni sono ridefinite dalla classe derivata, la conversione di un oggetto derivato nel tipo della classe base causa una ambiguità: non è chiaro se si voglia chiamare la funzione come definita nella classe base o come ridefinita in quella derivata.
La definizione di funzione virtuale ha lo scopo di risolvere questo problema. Se la funzione in questione è identificata come "virtuale" allora la funzione della classe derivata sarà chiamata (se esiste). Se la funzione non è virtuale, si farà riferimento alla funzione della classe base.