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

Preklapanje operatora

[es] :: C/C++ programiranje :: C/C++ za početnike :: Preklapanje operatora

[ Pregleda: 2184 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.zrlocal.net.



+5 Profil

icon Preklapanje operatora16.11.2008. u 14:16 - pre 187 meseci
Zanima me zasto je kod preklapanja operatora obavezan znak & , ili mozda nije?
Code:
Complex &operator+=( const Complex &);
    Complex &operator-=( const Complex &);
    Complex &operator*=( const Complex &);
    Complex &operator/=( const Complex &);


I da li mozete da mi objasnite sta taj & predstavlja?
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: Preklapanje operatora16.11.2008. u 20:48 - pre 187 meseci
To je znak za reference u C++-u .
http://www.elitesecurity.org/t...ika-izmedju-referenci-pointera
Sto se tice operatora lepo objasnjeno na :
http://www.cs.caltech.edu/cour...terial/cpp/donnie/cpp-ops.html



Viva lollapalooza
 
Odgovor na temu

EArthquake

Član broj: 20684
Poruke: 884
*.eunet.rs.



+67 Profil

icon Re: Preklapanje operatora16.11.2008. u 22:36 - pre 187 meseci
naravno da nemora , ako pogledas malo bolje , videces da pri preklapanju operatora + ne vracas referencu nego novi
objekat , jer je taj koji napravis u funkciji kojom preklapas + lokalni i nestaje cim izadje iz opsega , tj kad funkcija vrati vrednos

ako stavis & i operator +() f-ja ti vrati referencu , ponekad ce to cak i da radi , ali ce raditi po principu "ako prodje prodje"
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-a-1.sezampro.yu.



+395 Profil

icon Re: Preklapanje operatora17.11.2008. u 11:01 - pre 187 meseci
^ Tacno tako evo primer :
Code:

Complex c1,c2,c3 ; 
//ako uradis 
c2+=c3 ; 
//ne treba ti ni Complex& sa leve strane operatora+= jer vrednost c2 se nece dodeljivati nijednoj promenljivoj .. 
// onda f-ja moze da izgleda ovako : 
void operator += (const Complex&) ; 


//ako uradis 
c1 = c2 += c3 ; 
// treba ti Complex& jer ce c2 da preda sebe tj. referencu (ne kopiju) promenljivoj c1 itd .. 
//zato je dobra praksa da ti operatori (=,+=,/=,*=) itd vracaju referencu da bi mogao da radis operatorski lanac operacija sa desna na levo ..
//Complex& operator += (const Complex&) ; 
 
// ako imas npr. operator + neces stavljarti Complex& nego samo  Complex (novi objekat) jer samo sabiranje daje novu vrednost tj. novi objekat .. 

c1 = c2 + c3 ; 
//onda bi tvoj operator izgledao ovako 
const Complex operator +( const Complex &);


Viva lollapalooza
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Preklapanje operatora

[ Pregleda: 2184 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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