Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    10

    Distruttore VIRTUAL c++

    Ciao a tutti, volevo un chiarimento sui distruttori in c++. Sappiamo benissimo che il distruttore deve essere VIRTUAL altrimenti quando faccio il delete di un classe DERIVATA richiamerei il distruttore della classe BASE e non DERIVATA .

    codice:
    //Esempio :
    	BASE* Ptr_1 = new DERIVATA;
            delete Ptr_1;
    Dichiarando il distruttore VIRTUAL in BASE richiamo il distruttore di DERIVATA con il delete .

    La cosa che non mi e' chiara e' questa :

    codice:
    {
    DERIVATA derivata;
    BASE* = &derivata 
    }
    Perche' richiama il distruttore di BASE e non d iDERIVATA

    Grazie

  2. #2
    Non dovrebbe... a parte che quell'esempietto non compila (non hai messo il nome della variabile di tipo BASE), nel momento in cui derivata va fuori scope viene richiamato il suo distruttore, quella variabile base non influenza il processo.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.