04 Preklapanje operatora.pdf

Description
Objektno orijentisano programiranje 1 Preklapanje operatora Pojam preklapanja operatora Ako su u programu potrebni kompleksni brojevi i operacije nad njima – pogodno je da se operacije mogu predstaviti standardnim operatorima – na primer: Kompleksni c1(1,2),c2(3,4),c3; c3=c1+c2; C++ dozvoljava preklapanje operatora – drugi termin: preopterećenje operatora (operator overloading) – definišu se nova značenja operatora za korisničke tipov

Please download to get full document.

View again

of 37
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Documents

Publish on:

Views: 0 | Pages: 37

Extension: PDF | Download: 0

Share
Transcript
  Objektno orijentisano programiranje 1 Preklapanje operatora  01.11.2016.Preklapanje operatora 2 Pojam preklapanja operatora  Ako su u programu potrebni kompleksni brojevi i operacije nad njima  –  pogodno je da se operacije mogu predstaviti standardnim operatorima  –  na primer: Kompleksni c1(1,2),c2(3,4),c3; c3=c1+c2;  C++ dozvoljava preklapanje operatora  –  drugi termin: preoptere ć enje operatora ( operator overloading  )  –  definišu se nova zna č enja operatora za korisni č ke tipove (klase)  –  princip je sli č an kao kod preklapanja imena funkcija  Preklopljeni operatori za klasne tipove su specijalne operatorske funkcije  Operatorske funkcije nose ime operator@  –  simbol @ predstavlja neki operator ugra đ en u jezik  Operatorske funkcije preklapaju standaradne operatore ( + , - , * , / , ...)  Pozivanje operatorskihfunkcijau izrazima  –  može biti notaciono isto kao i koriš ć enje operatora  nad ugrađ enim tipovima  –  izraz t1@t2 se tuma č i kao:  operator@(t1,t2)// za operatorsku prijateljsku funkciju klase  t1.operator@(t2)// za operatorskimetod klase  01.11.2016.Preklapanje operatora 3 Primer operatorskih funkcija class Kompleksni {  public :Kompleksni( double , double ); /* konstruktor */ friend  Kompleksni operator +(Kompleksni, Kompleksni); /* oparator + */ friend  Kompleksni operator -(Kompleksni, Kompleksni); /* operator -*/  private : double real, imag;};Kompleksni::Kompleksni( double r=0.0, double i=0.0): real(r), imag(i) {}Kompleksni operator + (Kompleksni c1, Kompleksni c2) {Kompleksni c; c.real=c1.real+c2.real;c.imag=c1.imag+c2.imag; return c;}Kompleksni operator -(Kompleksni c1, Kompleksni c2) { return Kompleksni(c1.real-c2.real, c1.imag-c2.imag); }...Kompleksni c1(1.0,1.0),c2(2.0,2.0),c3,c4;c3=c1+c2; /* poziva se operator+(c1,c2) */c4=c2-c3; /* poziva se operator-(c2,c3) */  01.11.2016.Preklapanje operatora 4 Organi č enja preklapanja operatora  Postoje neka ograni č enja u preklapanju operatora:  –  ne mogu da se preklope operatori: . , .* , :: , ?: , sizeof , alignof,typeid i throw  –  ne mogu da se menjajuzna č enja operatora za primitivne (standardne) tipove podataka  –  ne mogu da se uvode novi simboli za operatore  –  ne mogu da se menjaju osobine operatora: n  -arnost, prioritet i asocijativnost  –  neki operatori imaju posebna ograni č enja za preklapanje: = , i ++ , i -- , [] , () , -> , ( tip ) , new , delete
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks