Kako izvesti preobremenitev operaterja v c ++?



V tem članku si bomo ogledali še en objektno usmerjen koncept, ki olajša upravljanje operaterja. Učili bi se preobremenjenosti operaterja v jeziku C ++.

V tem članku bomo raziskali še en objektno usmerjen koncept, ki olajša upravljanje operaterja. To pomeni, da bi se spuščali v podrobnosti operaterja Preobremenitev v jeziku C ++ . V tem članku bodo zajeti naslednji napotki:

Začnimo s tem člankom o preobremenitvi operaterja v jeziku C ++.





Preobremenitev v jeziku C ++

Če ustvarimo dva ali več članov istega razreda z istim imenom, vendar različnim po številu ali vrsti parametra, je to znano kot preobremenitev C ++.



V C ++ lahko preobremenimo:

  • metode
  • konstruktorji
  • indeksirane lastnosti

Ker imajo ti člani samo parametre.

izvedba razvrščanja merge c ++

Nadaljujemo s tem člankom o preobremenitvi operaterja v jeziku C ++.



Vrste preobremenitve v C ++

  • Preobremenitev funkcije
  • Preobremenitev operaterja

Preobremenitev - Preobremenitev operaterja v C ++ - Edureka

Nadaljujemo s tem člankom o preobremenitvi operaterja v jeziku C ++.

Zakaj se uporablja preobremenitev operaterja?

Programe C ++ je mogoče pisati brez vedenja preobremenitve operaterja. Nato programerji globoko uporabljajo operaterje, da program naredijo intuitiven. Na primer,

Kodo lahko nadomestimo tako:

izračun = seštej (deli (a, b), pomnoži (a, b))

Za enačbo

izračun = (a / b) + (a * b)

Preobremenitev operaterja omogoča preprost in enostaven način za razvoj novih definicij za večino operaterjev v jeziku C ++. Z zadostnim znanjem lahko z ustvarjalno uporabo tehnik in tehnik preobremenitve operaterja skoraj ustvarimo svoj lasten jezik. V C ++ lahko preobremenimo vse operaterje, razen naslednjih:
● Operator obsega (: :)
● Velikostni operator (Sizeof)
● izbirnik članov (.)
● izbirnik kazalca člana (*)
● ternarni operater (? :)

Sintaksa preobremenitve operaterja

pretvori dvojno v int java -
return_type ime_razreda:: operater op (argument_list) {// telo funkcije}

Kjer je vrsta vrnitve vrsta vrednosti, ki jo vrne funkcija. ime_razreda je ime predavanja.

Nadaljujemo s tem člankom o preobremenitvi operaterja v jeziku C ++.

Izvajanje preobremenitve operaterja v jeziku C ++

Funkcija operaterja mora biti nestatična (funkcija člana) ali funkcija prijatelja, da se preobremeni. Funkcijo preobremenitve operaterja je mogoče uporabiti za funkcijo člana, če je levi operand objekt tega razreda, če pa je levi operand drugačen, mora biti funkcija preobremenitve operaterja definirana kot nečlanska funkcija.
Funkcija preobremenitve operaterja lahko postane funkcija prijatelja, če zahteva dostop do zasebnih in zaščitenih članov razreda. Na primer, operater op je operacijska funkcija, kjer je op operater, ki je preobremenjen, in operater je ključna beseda. Preobremenitev operaterja je mogoče doseči z izvajanjem funkcije, ki je lahko funkcija člana, funkcija nečlana ali funkcija prijatelja.

Kakšna je razlika med funkcijami operaterja in običajnimi funkcijami?

Operatorske funkcije so enake običajnim funkcijam. Edina razlika je v tem, da je ime funkcije operatorja vedno ključna beseda operatorja, čemur sledi simbol operatorja in funkcije operaterja se pokličejo, ko se uporablja ustrezni operator.

Nadaljujemo s tem člankom o preobremenitvi operaterja v jeziku C ++.

Vrste pristopov preobremenitve

Preobremenitev operaterja lahko izvedemo s tremi pristopi

  • Preobremenitev enotnega operaterja.
  • Preobremenitev binarnega operaterja.
  • Preobremenitev binarnega operaterja s funkcijo prijatelja.

Nadaljujemo s tem člankom o preobremenitvi operaterja v jeziku C ++.

Preobremenitev enoličnega operaterja

Upoštevajmo unarni operator '-'. Operator minus, če se uporablja kot unarski, zahteva le en operand. Vemo, da ta operater spremeni znak operanda, kadar se uporabi za osnovno podatkovno spremenljivko. Poglejmo, kako preobremeniti ta operater, tako da ga je mogoče uporabiti za objekt na enak način, kot se uporablja za spremenljivko int ali float. Unarni minus, ko se uporabi za predmet, bi moral zmanjšati vsak njegov element podatkov.

Primer:

#include uporabo imenskega prostora std class Height {public: // Član Objects int feet, inch // Konstruktor za inicializacijo vrednosti predmeta Height (int f, int i) {feet = f inch = i} // Operator preobremenitve (-) v izvedemo dekrement // operacija operaterja void predmeta Height- () {čevlji - palec - cout<< 'Feet & Inches after decrement: ' << feet << ' ' ' << inch <

Izhod:

Pojasnilo:
V zgornjem primeru preobremenimo unarni operator '-', da izvedemo zmanjšanje v dveh spremenljivkah razreda Height. Konstruktorju posredujemo dva parametra in shranimo njihove vrednosti v spremenljivke stopal in palcev. Nato določimo funkcijo preobremenitve operaterja (void operator- ()
), pri katerem se spremenljivki z enim položajem zmanjšata.
Ko napišemo -h1, pokliče funkcijo preobremenitve operaterja in zmanjša vrednosti, posredovane konstruktorju.

Nadaljujemo s tem člankom o preobremenitvi operaterja v jeziku C ++.

Preobremenitev binarnega operaterja

Gre za preobremenitev operaterja, ki deluje na dva operanda. Vzemimo isti primer razreda Height, vendar tokrat dodajte dva predmeta Height h1 in h2.

Primer:

#include using namespace std class Height {public: int feet, inch Height () {feet = 0 inch = 0} Height (int f, int i) {feet = f inch = i} // Operator preobremenitve (+) za izvajanje dodajanje // predmeta na dve razdalji z binarnim operatorjem Height operator + (Height & d2) // Pokliči s sklicem {// Ustvari predmet za vrnitev Height h3 // Izvedemo dodajanje stopal in palcev h3.feet = feet + d2.feet h3. inch = inch + d2.inch // Vrni nastali predmet return h3}} int main () {Višina h1 (3, 7) Višina h2 (6, 1) Višina h3 // Uporabi preobremenjeni operater h3 = h1 + h2 cout<< 'Sum of Feet & Inches: ' << h3.feet << ''' << h3.inch << endl return 0 } 

Izhod:

Pojasnilo:
Operator višine + (višina & h2), tukaj return_type funkcije je razred Height, tako da vrne objekt h3 razreda Height. V vrstici h3 = h1 + h2 h1 pokliče funkcijo operatorja svojih predmetov razredov in za parameter vzame h2, nato uporabimo h3.feet = noge + d2.feet in h3.inch = inch + d2.inch, ki shrani vsota vrednosti spremenljivk ft in inch v spremenljivkah, povezanih s objektom h3.
Ko stavek „h3 = h1 + h2“ prikliče funkcijo, ki je preobremenjena z operaterjem, je objekt h1 prevzel odgovornost za klic funkcije in h2 igra vlogo argumenta, ki se posreduje funkciji. Zgornji stavek klica je enakovreden h3 = h1.operator + (h2), zato do podatkovnega člana h2 dostopate neposredno, do podatkovnega člana h2 (ki je poslan kot argument) pa uporabite operator pike.

Pravila za preobremenitev operaterja

  • Preobremenjeni so lahko samo obstoječi operaterji in novi operaterji
  • Preobremenjeni operater mora vsebovati vsaj en operand uporabniško določenega podatkovnega tipa.
  • Funkcije prijatelja ne uporabljamo za preobremenitev nekaterih operaterjev. Vendar pa lahko funkcije članov uporabimo za preobremenitev teh operaterjev.
  • Ko so enolični operaterji preobremenjeni s funkcijo člana, ne sprejmejo eksplicitnih argumentov, če pa jih preobremeni funkcija prijatelja, vzamejo en argument.
  • Ko so binarni operaterji preobremenjeni s funkcijo člana, vzamejo en izrecni argument, in če so preobremenjeni s funkcijo prijatelja, vzamejo dva eksplicitna argumenta.

Tako smo prišli do konca tega članka o 'Preobremenitvi operaterja v C ++'. Če želite izvedeti več, si oglejte Java Training by Edureka, zaupanja vredno podjetje za spletno učenje. Edureka tečaji so zasnovani tako, da vas usposobijo za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi pa se vam bomo javili v najkrajšem možnem času.

rekurzija fibonacci c ++