[ RMAN @ 11.03.2007. 02:57 ] @
Kako se radi sa template-ovima? Sta je ovo? Sad radimo u skoli a nikako da shvatim sta je ovo?
[ X Files @ 11.03.2007. 07:56 ] @
Pogledaj za početak ovde:
http://www.novetehnologije.com/Default.aspx?tabid=102
(a kasnije svakako nabavi neku knjigu)
[ RMAN @ 13.03.2007. 07:55 ] @
Ok malo mi je jasnije.
Ima jos nesto sto ne razumem:

const int& max (const int& a, const int& b)

Da li mozete da mi objasnite ulogu & operatora?
[ X Files @ 13.03.2007. 09:51 ] @
Citat:

Da li mozete da mi objasnite ulogu & operatora?

& označava da se radi o Rererenci na označenu promenljivu/funkciju nekog tipa.

O osobinama i upotrebi referenci najbolje je da naučiš iz neke knjige ili direktno sa
On-Line tutorijala.

Jedna od ideja upotrebe referenci je u 'brzom' prenošenju vrednosti u funkciju bez
internog privremenog kopiranja... Slično se postiže i sa pointerima, ali uz značajno
ružniju sintaksu (sa čime se čika Bjarne ne bi složio, ako se dobro sećam...)
[ itf @ 15.03.2007. 09:14 ] @
Citat:
RMAN: Ok malo mi je jasnije.
Ima jos nesto sto ne razumem:

const int& max (const int& a, const int& b)

Da li mozete da mi objasnite ulogu & operatora?


Operator & ili referenca služi da bi za već postojeću varijablu uveo novo ime. Npr.:

Code:
#include <iostream.h>

int main()
{
    int i, &r = i;  // r je referenca na i

    i = 10;
    cout << i << " " << r;    // 10 10
    cout << endl;

    r = 11;
    cout << i << " " << r;    // 11 11
    return 0;
}


Varijable "i" i "r" su jedno te isto. Ako se baš želiš uvjeriti, provjeri njihove adrese i vidjet ćeš da je to zapravo jedna te ista varijabla.

Isto tako, reference se kao parametri funkcije mogu koristiti kako bi izbjegao pokazivače. Ako si početnik to nikako ne preporučujem jer se lako zabuniti između lokalne varijable funkcije i reference koja može predstavljati neku varijablu u nekoj drugoj funkciji. Stoga, po mom mišljenju je bolje koristiti pokazivače jer vjerujem da ćeš biti puno oprezniji pri pisanju nekog izraza (naredbe) koja sadrži pokazivač nego referencu. Npr.:

Code:
#include <iostream.h>

void f(int& r)
{
    r = 10; // pristup preko reference
}
int main()
{
    int i;

    f(i);  // poziv funkcije
    cout << i;
    return 0;
}


Ako pogledaš funkciju f, u njoj se pristupa varijabli r kao da je riječ o lokalnoj varijabli funkcije. Međutim, ona u ovom konkretnom slučaju je zapravo ništa drugo već varijabla "i" iz funkcije main. Ovdje se vrlo lako zabuniti ako nisi oprezan, a pogotovo ako je riječ o većem broju referenci. Stoga, ovo bi bilo puno "opreznije":

Code:
#include <iostream.h>

void f(int* r)
{
    *r = 10; // pristup preko pokazivača
}
int main()
{
    int i;

    f(&i);  // predaja adrese varijable
    cout << i;  // 10
    return 0;
}


E sad... ako pogledaš funkciju f kojom se preko pokazivača mijenja vrijednost odmah bi ti trebalo biti jasno da možda mijenjaš nešto što nije u domeni funkcije f.
[ RMAN @ 18.03.2007. 02:49 ] @
Hvala, to mi je trebalo