PDA

View Full Version : [C++]Reference e Puntatori


Luc@s
08-05-2004, 17:25
Ma se in C++ ho i reference perche dovrei usare i puntatori??
Non basta che se il parametro passato puo essere NULL o cancellato nella funz sia un puntatore o in tutti gli altri un reference???


Tnk

/\/\@®¢Ø
08-05-2004, 21:12
Prima di tutti i puntatori "arrivano" dal C, e non si potevano eliminare senza perdere la compatibilita'.
Poi non sempre quello che fai con i puntatori riesci a farlo facilmente con i riferimenti. Ad esempio puoi avere puntatori a puntatori, ma non riferimenti a riferimenti. Non mi viene in mente una alternativa semplice al seguente frammento di codice:

void foo( int** x )
{
int* y = new int(10);
*x = y;
}

cavay
10-05-2004, 00:41
l'utilizzo dei puntatori in c++ è ancora una cosa fondamentale.

Iniziamo a dire....come faresti a fare allocazioni dinamiche? e non solo....vuoi mettere le potenzialità e la facilità messe a disposizione dall'algebra dei punttori nella gestione della memoria?
Faccio qualche consid ma...scritta male ho una tastiera...va be lasciamo stare...cmq nn posso ins graffe

immagina di aver un indirizzo di memoria e di voler sapere se il valore "del prossimo" byte è un numero dispari.

bool func(void *param)
char *pnt=NULL;
pnt = param;
pnt++;
return(*pnt&0x01);


nn ne trovi benificio semplimente perchè utilizzi macchine spinte e con una quantità di RAM allucinante e di non avere vincoli prestazionali

Nel pass di argomenti in metod...io consiglio sempre i reference anche perchè il pasagg a punt significa fare un pass per copia di un tipo puntatore(es 4byte) metre quello per reference...è una cosa complessa da spiegare ma...non viene fatta alcuna copia.