Newsgroup: it.comp.lang.c++
Titolo: [neofita] Puntatori

Ciao a tutti...sono nuovo del news e ho iniziato da poco a cimentarmi col
c++.
Sono arrivato allo scoglio: i puntatori.
Credo di averli capiti(i vari operatori ecc), almeno da cosa ho letto, ma
non mi è chiaro esattamente la loro convenienza.
Quando cioè è meglio usare una variabile normale e quando invece è meglio
usare un puntatore a tale variabile?
E perchè ?
Grazie a chiunque avrà la pazienza di rispondermi
Filippo

 
un esempio: preferisci portarti dietro una casa perche' sai che ci abiti, oppure
e` meglio conoscere l'indirizzo e sapere come tornarci?
controesempio: quando viaggi, e` piu` comodo avere la tua valigia al seguito,
oppure lasciarla a casa per sapere dove trovarla nel caso ti servisse?
E` solo una delle differenze del passaggio per valore/riferimento, ad ogni modo
i puntatori servono molto: ad esempio se devi modificare una variabile esterna,
se devi restituirla, ecc...
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 se devi restituirla, ecc...
[CUT]
Be'...se prima avevo un po' di casino....adesso ne ho di piu'!!!
Filippo

 meglio

 con il controesempio che non mi sembra avere corrispettivi in informatica.
Quando passi un oggetto ad una funzione, conviene passarlo per indirizzo (o per riferimento), per
evitare la copia dell'oggetto alla chiamata della funzione (a meno che nella funzione non si debba
usare proprio una copia). Per lo meno io il controesempio l'ho interpretato così ;-)
Ciao,
Cecco

Ok Claro. Quindi é come passare un puntatore, é solo la forma di sintassi
alternativa dei reference


 ha scritto nel messaggio
news:60Qba.7727$7y3.2...@twister1.libero.it...

mmmm..il termine passaggio per riferimento fa molto Vb (byRef), preferisco
puntatore...(lo so' che è la stessa cosa)
Quello che ho capito(credo) è che in caso di passaggio di un oggetto ad una
funzione conviene passare un puntatore anzichè l'oggetto intero per non
"caricare" troppo lo stack......o sbaglio?
Sono sulla strada giusta nel processo di apprendimento dei puntatori?
Filippo

 con il controesempio che non mi sembra avere corrispettivi in informatica.
Credo che il concetto sia simile.
Comunque i puntatori sono uno strumento utilissimo nelle evenienze
sopraccitate ma diviene l'UNICO modo per poter accedere a delle variabili
allocate dinamicamente.
--
Domenico Testa - Studente

 Filippo
Certamente, ma non si finisce mai di imparare.


Su questo non fai una grinza

 allocate dinamicamente.
Vero, anche se è preferibile utilizzarli indirettamente attraverso
oggetti che li incapsulino.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 "caricare" troppo lo stack......o sbaglio?
Si, ma non solo. Quando viene passato l'oggetto nella funzione viene chiamato il costruttore di
copia, per cui c'è anche l'overhead della chiamata.
Ciao,
Cecco

 preferisco puntatore...(lo so' che è la stessa cosa)
discorso IMHO assolutamente senza senso: tu non usi una caratteristica 
del linguaggio (peraltro molto utile) solo per un non meglio definito 
"purismo"?
Tra l'altro il passaggio per reference e` presente in quasi tutti i 
linguaggi di programmazione: Pascal, C++, Java, Python, C#, VB, solo per 
citare quelli che conosco; il C e` l'unico linguaggio molto usato che 
non lo supporta.
Per finire, volevo farti notare che se programmi in C++ usi i reference 
tutti i giorni, magari senza saperlo: ad esempio i costruttori di copia 
vogliono un paramentro reference, cosi` come gran parte delle operazioni 
sugli stream standard (tra cui std::cout e std::cin) restituiscono un 
reference a se` stessi.
ciao Anto
-- 
"Computer science is not about computers any more than astronomy
is about telescopes." -- EW Dijkstra