[ Acid.Reconected @ 14.09.2004. 10:42 ] @
Pozdrav svima.

Posto sam resio da naucim c++ (mora se), a DOBRO poznajem Basic u koma na (ne)srecu nema pokazivaca, sada muku mucim da ih skontam.

Ima li ko neki DOBAR sajt na kome su isti objasnjeni. Ja sam trazio po netu i nista novo nisam naucio, jer vecina tih "objasnjena" ide slicno ovome:

Code:

int main()
{
   int x;
   int *p;
   p=&x;
   cin>>x;
   cout<<*p;
   return 0;
}


I meni stvarno nije jasno zasto bih ja pravio pokazivac na x, da bih kasnije umesto cout<<x, koristio cout<<*p ?!?!?!

Sve u svemu HVALA>
[ boccio @ 14.09.2004. 10:47 ] @
probaj da nadjes (online) verziju knjige C++ in 21 days od Jesse Liberty-ja. Tu su pokazivaci odlicno objasnjeni, i to bas kroz lepe primere...na ovom forumu je bilo reci o toj knjizi, probrauzaj, naci ces neki link sigurno...
[ Dragi Tata @ 14.09.2004. 13:02 ] @
http://www.codeproject.com/cpp/#Beginners
[ Acid.Reconected @ 18.09.2004. 12:08 ] @
hvala na odgovorima,
shvatio sam kako rade i kako se koriste, ali...
jos uvek mi nije jasno zasto bih ih koristio. Jel ima neko neki kontretan primer gde se vidi koliko su pokazivaci i reference korisni (i molim vas samo mi nemojte reci ''linkovane liste'')

[ filmil @ 18.09.2004. 12:25 ] @

Citat:

korisni (i molim vas samo mi nemojte reci &amp;quot;&amp;quot;linkovane

liste&amp;quot;&amp;quot;)



A šta bi ti da ti ljudi kažu?


f
[ leka @ 18.09.2004. 14:34 ] @
Konkretan primer gde su pokazivaci korisni je NekaKlasa::NekiMetod(NekaDrugaKlasa* objekat), neki fiktivni metod neke fiktivne klase koji kao argument prima objekat tipa neke trece klase... Primeti da se kao argument prosledjuje POKAZIVAC (mada bi neki koristili referencu, ali ja sam odabrao pokazivac jer je to tema ovog "thread"-a). Zasto? - Zato sto kada bi se prosledjivao ceo objekat dolazilo bi prilikom SVAKOG poziva tog metoda do kopiranja objekta na stek. Ako je objekat tipa NekaDrugaKlasa veliki (par kilobajta recimo) to znaci da bi se nonstop rezervisala velika kolicina memorije (ovo je pogotovo primetno ako se objekti tog tipa smestaju u neku listu ili niz). Umesto toga, koriste se pokazivaci, tako da nema ovog kopiranja.
Mozda je trebalo nekako jasnije objasniti ovo, ali meni nije na pamet pao neki "slikovitiji" nacin, razumljiv za VB programere.
Verovao ili ne VB sve svoje objekte prenosi funkcijama/procedurama upravo na ovaj nacin (interno, to VB programeri ne znaju)! :) Dakle interno VB koristi jaaaako puno pokazivace! :) C i C++ koriste nesto slicno "BY VAL" direktivi u VB-u... Znaci, uvek se pravi lokalna kopija promenljive koja se prenosi kao argument, osim ako se ne prenosi po referenci (BY VAL u VB-u).
[ Dejan Lozanovic @ 18.09.2004. 15:35 ] @
pa evo prost primer, prenos argumenata ka funkciji je uvek preko vrednosti(dodeljevinjaem), e sada sta ako pozelis da ti funkcija promeni vrednost tog parametra koji je prosledjen funkciji. tada je jedini nacin da prosledis pokazivac (referenca je poseban tip pokazivaca).

Opet kada naprimer prosledjujes objekat neke klase brze je proslediti referencu ili pokazivac na njega nego cisti objekat jer se izbegava operacija dodele koja za neke velike klase moze da bude u procesorskom vremenu dosta dugacka, a kopiranje njegove adrese je jedna masinsa instrukcija.
[ Acid.Reconected @ 18.09.2004. 18:12 ] @
e hvala, mislim da sam konacno shvatio cemu sluze. HVALA svima.
[ Nedeljko @ 18.09.2004. 22:40 ] @
Nisi ništa shvatio. Shvatićeš tek kada budeš radio dinamičke strukture (liste, drveta, itd.).
[ filmil @ 18.09.2004. 23:56 ] @
Stvarno ću da zaključam ovu temu, a OP-a molim da se malo informiše unaokolo, ništa to ne boli...

f