Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

const char* const & - nedoumice

[es] :: C/C++ programiranje :: const char* const & - nedoumice

[ Pregleda: 1942 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon const char* const & - nedoumice09.01.2014. u 14:25 - pre 124 meseci
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???
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
80.93.235.*



+9 Profil

icon Re: const char* const & - nedoumice09.01.2014. u 14:50 - pre 124 meseci
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.
 
Odgovor na temu

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Re: const char* const & - nedoumice09.01.2014. u 20:37 - pre 124 meseci
Uspio sam riješiti neke nedoumice, ali me interesuje, zašto bi smo koristili REFERENCU na pokazivac???

[Ovu poruku je menjao azzpoz dana 10.01.2014. u 13:24 GMT+1]
 
Odgovor na temu

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Re: const char* const & - nedoumice10.01.2014. u 12:39 - pre 124 meseci
Code:
#include <iostream>
using namespace std;

class omr
{
      
public:
       char *naziv;
       omr(char *_n)
       {
                naziv = new char[strlen(_n)+1];
                strcpy(naziv, _n);
       }
       ~omr(){delete []naziv; naziv = NULL;}
};
void proba(const omr* const  &obj)
{
     cout << obj->naziv;
    cout << "\n adresa: " << &obj << endl;;
     
}

void bezRef(const omr* const  obj)
{
     cout << obj->naziv;
    cout << "\n adresa: " << &obj << endl;;
     
}

int main()
{
    omr *Ja = new omr("Elite");
    cout << "\n Adresa Ja: " << &Ja << endl;
    
    proba(Ja);
    proba(Ja);
    
    
    bezRef(Jla);
    bezRef(Ja);
    
system("pause>0"); return 0;
}



Zasto je u funkciji s referencom uvijek promjena adrese na koju pokazuje???


Uspio sam riješiti neke nedoumice, ali me interesuje, zašto bi smo koristili REFERENCU na pokazivac, da li je to oznaka da smo na mjestu ORIGINALNOG pokazivaca, tj. da ne koristimo neki privremeni pokazivac na niz, objekat i sl???

[Ovu poruku je menjao azzpoz dana 10.01.2014. u 15:39 GMT+1]
 
Odgovor na temu

azzpoz

Član broj: 300637
Poruke: 96



+1 Profil

icon Re: const char* const & - nedoumice11.01.2014. u 15:40 - pre 124 meseci
Uspješno sam riješio nekoliko nedoumica i mislim da sam ih razumio, trenutno, dovoljno.

Hvala
 
Odgovor na temu

[es] :: C/C++ programiranje :: const char* const & - nedoumice

[ Pregleda: 1942 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.