Determinare quando usare un distruttore virtuale. Un distruttore di una classe dovrebbe essere virtuale quando un oggetto di una classe derivata sarà distrutto invocando il distruttore della classe base. Il distruttore deve essere virtuale, quando si elimina un puntatore ad un oggetto ed è possibile che faccia riferimento a una classe derivata .
2
Scopri una differenza importante tra un distruttore e altri metodi membri . In entrambi i casi , il metodo della classe derivata viene richiamato se è attuata. Tuttavia, il distruttore della classe base viene successivamente chiamato mentre questo non accade con altri metodi
3
Si consideri il seguente esempio di un distruttore virtuale : .
# Include Base_class classe {public : Base_class ( ) { cout //parola chiave virtual serve herevirtual ~ Base_class ( ) { cout }; Derived_class classe: Base_class {public : Derived_class ( ) { cout ~ Derived_class ( ) { cout } ; void main ( ) { Base_class * p = new Derived_class (); delete p; }
4
osservare l'uso della parola chiave virtuale nell'esempio al punto 3. Se il distruttore della classe base non sono stati dichiarati come virtuale , il distruttore della classe derivata non si sarebbe chiamato .
5
implementare almeno un corpo vuoto per un distruttore virtuale da una funzione virtuale pura non può essere dichiarato .
Programmazione © www.354353.com