Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Occhio che se implementi un costruttore di copia e un distruttore è abbastanza imprescindibile implementare anche l'operatore di assegnazione, altrimenti con quello di default rischi problemi di questo tipo:
    codice:
    {
        Foo f("abcd");
        {
            Foo g("");
            g=f; // g copia il *puntatore* contenuto in f
        } // g viene distrutto e fa la delete[] del puntatore contenuto al suo interno, che è lo stesso di f
    } // f viene distrutto, crash! la memoria a cui puntava è già stata deallocata!
    Per implementare correttamente l'operatore di assegnazione senza ripetersi e senza rischiare di finire in uno stato inconsistente in caso di eccezioni la tecnica più semplice e sicura è il "copy & swap" .
    Ultima modifica di MItaly; 30-04-2016 a 14:06
    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.