Pogledaj jedan post
Old 20.03.2009., 16:29   #6
U C-u nema referenci.

Dakle:

T& je referenca na tip T

primjer pointera u C-u:

Kod:
void swap(int* a, int* b)
{
	int t;
	if(!a || !b)
		return;
	t = *a;
	*a = *b;
	*b = t;
}

int main(void)
{
	int x=5, y=7;
	swap(&x, &y);
	return 0;
}
primjer u C++-u sa referencama:

Kod:
void swap(int& a, int& b)
{
	int t = a;
	a = b;
	b = t;
}

int main()
{
	int x=5, y=7;
	swap(x, y);
}
referenca mora biti inicijalizirana

double d = 1.25;
double& r = d;

referenca se ne može promijeniti, sve operacije na referenci se odnose na varijablu na koju referenca pokazuje

int n = 1;
int& r = n;
r = 3; // mijenja vrijednost varijable n

preko konstantne reference ne može se mijenjati ni varijabla na koju referenca pokazuje

int n = 1;
const int& r = n;
r = 3; // compile error


Sa pointerima uvijek imaš veću mogućnost pogreške.

Evo što Strustup kaže:

Quote:
A reference is an alternative name for an object. The main use of references is for specifying arguments
and return values for functions in general and for overloaded operators (Chapter 11) in particular.
The notationX & means reference to X .
A ima toga još. Evo i neki link na brzinu:

http://www.parashift.com/c++-faq-lite/references.html
__________________
Be Water My Friend
get is offline  
Odgovori s citatom