lunedì 11 marzo 2013

C++ - Uso di New e Delete e dei due punti


int main() {

int *p;

// Ne alloco 1 alla C
p = (int *) malloc (sizeof(int));
free (p);

// Ne alloco 1 alla C++
p = new int;
delete p;

// Ne alloco 10 alla C
p = (int *) malloc (10*sizeof(int));
free (p);

// Ne alloco 10 alla C++
p = new int[10];
delete[] p;


vector v(10);

vector_fill_rand (v);
vector_print (v);

vector v2(v);
//v2 = v;
vector_print (v2);

printf ("La media di v e' %f\n",media(v));
}

La new, oltre ad allocare la memoria usata dai dati dell'istanza, esegue anche il costruttore tramite il quale possono essere eseguite istruzioni anche complesse.
La delete, ovviamente, esegue il distruttore , con tutto il codice che ne consegue. 


vector() : _data(0),_size(0) {}

vector (unsigned size) : _data(0) {
resize (size);
}

vector (const vector& v) : _data(0) {
resize (v.size());
*this = v;
}

Nessun commento:

Posta un commento