Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema classe Vector

  1. #1

    Problema classe Vector

    Io ho il seguente codice:

    Vector <MyObject> vettore1 = Vector <MyObject>();
    Vector <MyObject> vettore2 = Vector <MyObject>();

    vettore1.add(object);

    vettore2 = vettore1;

    vettore1.remove(object);

    Qualcuno mi può rispolverare il perchè cancellando l'elemento nel vettore1 lo elimino pure nelo vettore2 mi pare che era per via che vado a salvare nel Heap ecc!!

    Come faccio a copiare il vettore?

  2. #2
    cancellando l'elemento dal Vector1 elimini anche l'elemento del Vector 2 perche' fanno riferimento allo stesso oggetto...o meglio alla stessa locazione in memoria.

    per copiare un vector devi usare il metoro clone della classe vector..

    dai un occhiata qui
    La vita sarebbe piu' facile se avessi il codice sorgente!

  3. #3
    Originariamente inviato da zip2k
    cancellando l'elemento dal Vector1 elimini anche l'elemento del Vector 2 perche' fanno riferimento allo stesso oggetto...o meglio alla stessa locazione in memoria.

    per copiare un vector devi usare il metoro clone della classe vector..

    dai un occhiata qui
    Si infatti ricordavo una cosa del genere me questo è dovuto al fatto perchè vado a salvare nel Heap, perchè comunque io il vettore 2 lo creo con new.
    Comunque grazie per la risp il metodo clone fa proprio a caso mio

  4. #4
    Originariamente inviato da ingnuccio
    Si infatti ricordavo una cosa del genere me questo è dovuto al fatto perchè vado a salvare nel Heap, perchè comunque io il vettore 2 lo creo con new.
    Anche se crei un nuovo oggetto Vector attraverso la keyword new... se poi assegni al vettore2 il vettore1, lavorando per riferimento non viene creata una copia dell'oggetto... ma semplicemente cambiano i riferimenti in memoria.

    Risultato i due oggetti Vector modificheranno sempre la stessa locazione di memoria...
    lasciando invariata il frammento di memoria assegato al vettore2 che rimarra' vuoto.
    La vita sarebbe piu' facile se avessi il codice sorgente!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.