Io ho trovato questo esempio sul famoso Schildt..pensi vada bene come "risoluzione" del quesito?
codice:#include <iostream> #include <string> #include <new> #include <cstdlib> using namespace std; class array { int *p; int dimensione; public: array (int dim) { cout<<"costruzione"<<endl; p=new int[dim]; dimensione=dim; } ~array() { delete [] p; cout<<"distruzione"<<endl; } // costruttore di copie array(const array &arr); void imposta (int i, int j) { if(i>=0 && i <dimensione) p[i]=j; } int prendi(int i) { return p[i]; } }; // Costruttore di copie array::array(const array &arr) { int i; p=new int[arr.dimensione]; cout<<"costruttore di copie"<<endl; for (i=0;i<arr.dimensione;i++) p[i]= arr.p[i]; } int main() { array num(10); int i; for(i=0;i<10;i++) { num.imposta(i,i); } for(i=9;i>=0;i--) { cout << num.prendi(i); cout <<"\n"; } // i vettori num e x contengono gli stessi valori ma ciascun vettore // si trova in aree diverse di memoria // crea un altro array e lo inizializza con num array x(num); // richiama il costruttore di copie; for(i=0;i<10;i++) { cout << num.prendi(i); cout <<"\n"; } return 0; }

Rispondi quotando