Citat:
azzpoz:
Code:
#include <exception>
exception(const char* const & ) ; // za kreiranje takvok exception-a, možemo poslati nesto poput ovoga unutar zagrade
Interesuje me opcenito znacenje za const i parametre unutar zagrade exception???
const & je konstantna referenca, i const char* je konstantni pokazivac
Da li mi
SAMO osiguravamo da nece dolaziti do promjena za parametar koji prihvati funkcija???
Code:
T objekat;
T const & referenca = objekat;
referenca je po definiciji konstantna, jer kada se jednom inicijalizuje da referiše na neki objekat, ne može kasnije da pokazuje na drugi objekat. Dakle, ne postoji "nekonstantna referenca". Referenca je uvek konstantna.
U ovom primeru kažemo da
referenca referiše na objekat koji je konstantan. Laički rečeno, kada koristiš ovu referencu iz primera, isto je kao kad bi koristio direktno objekat koji je deklarisan kao: const T objekat;
U tvom primeru:
Code:
exception(const char* const & ref)
{
// ref je referenca na [b]konstantan[/b] pokazivač (koji pokazuje na [i]const char[/i]
const char *x = "pera";
// ref = x; // baš zato što je konstantan pokazivač, ovo ne možeš da uradiš
}
Kad bi bilo ovako:
Code:
exception(const char* & ref)
{
// ref je referenca na [b]nekonstantan[/b] pokazivač (koji pokazuje na [i]const char[/i]
const char *x = "pera";
// ref = x; // ovo bi bilo dozvoljeno!
}
I na kraju, u oba prethodna slučaja ovo ne bi bilo dozvoljeno:
Code:
ref[0] = 'a'; // ref je referenca na (ne)konstantan pokazivač, a on pokazuje na [b]const char[/b], tj. ref[0] je const char.
Nadam se da je malo jasnije.
Pozdrav.