Kā ieviest operatora pārslodzi c ++ versijā?



Šajā rakstā mēs aplūkosim vēl vienu objektorientētu koncepciju, kas atvieglo operatora apstrādi. Mēs mācītos Operatora pārslodzi C ++.

Šajā rakstā mēs izpētīsim vēl vienu objektorientētu koncepciju, kas atvieglo operatora apstrādi. Tas ir tas, ka mēs iedziļinātos Operatora detaļās Pārslodze C ++ . Šajā rakstā tiks apskatīti šādi norādījumi,

Tātad, sāksim ar šo rakstu par Operatora pārslodzi C ++.





Pārslodze C ++

Ja mēs izveidojam divus vai vairākus vienas klases dalībniekus ar tādu pašu nosaukumu, bet atšķiras pēc parametru skaita vai veida, to sauc par C ++ pārslodzi.



Programmā C ++ mēs varam pārslogot:

  • metodes
  • konstruktori
  • indeksētas īpašības

Tas ir tāpēc, ka šiem dalībniekiem ir tikai parametri.

Turpinot šo rakstu par Operatora pārslodzi C ++.



Pārslodzes veidi C ++

  • Funkciju pārslodze
  • Operatora pārslodze

Pārslodze - operatora pārslodze C ++ - Edureka

Turpinot šo rakstu par Operatora pārslodzi C ++.

komentāru veidi java

Kāpēc tiek izmantota operatora pārslodze?

C ++ programmas var rakstīt, nezinot operatora pārslodzi. Arī tad operatori, kurus lieto, programmētāji tiek dziļi izmantoti, lai padarītu programmu intuitīvu. Piemēram,

Mēs varam aizstāt kodu, piemēram:

aprēķins = pievienot (dalīt (a, b), reizināt (a, b))

Par vienādojumu

aprēķins = (a / b) + (a * b)

Operatora pārslodze nodrošina vienkāršu un vienkāršu veidu, kā izstrādāt jaunas definīcijas lielākajai daļai operatoru C ++. Ar pietiekamām zināšanām mēs varam gandrīz izveidot jaunu savu valodu, radoši izmantojot funkciju un operatora pārslodzes paņēmienus. Mēs varam pārslogot visus operatorus C ++, izņemot šādus:
● Darbības jomas operators (: :)
● lieluma operators (Sizeof)
● dalībnieku atlasītājs (.)
● dalībnieka rādītāja atlasītājs (*)
● trīskāršais operators (? :)

Operatora pārslodzes sintakse

kas ir gadījums java
return_type klases_nosaukums:: operator op (argumentu_ saraksts) {// funkcija body}

Kur atgriešanas veids ir vērtības veids, ko atgriež funkcija. klases_nosaukums ir klases nosaukums.

Turpinot šo rakstu par Operatora pārslodzi C ++.

Operatora pārslodzes ieviešana C ++

Operatora funkcijai jābūt vai nu statiskai (dalībnieka funkcija), vai drauga funkcijai, lai pārslogotos. Operatora pārslodzes funkciju var piemērot dalībnieka funkcijai, ja kreisais operands ir šīs klases objekts, bet, ja kreisais operands ir atšķirīgs, tad Operatora pārslodzes funkcija ir jādefinē kā funkcija, kas nav loceklis.
Operatora pārslodzes funkciju var padarīt par drauga funkciju, ja tai nepieciešama piekļuve privātajiem un aizsargātajiem klases biedriem. Piemēram, operators op ir operatora funkcija, kur op ir pārslogots operators, un operators ir atslēgvārds. Operatora pārslodzi var panākt, ieviešot funkciju, kas var būt vai nu dalībnieka funkcija, vai ne biedra funkcija, vai drauga funkcija.

Kāda ir atšķirība starp operatora funkcijām un parastajām funkcijām?

Operatora funkcijas ir vienādas ar parastajām funkcijām. Vienīgā atšķirība ir tā, ka operatora funkcijas nosaukums vienmēr ir operatora atslēgvārds, kam seko operatora simbols, un operatora funkcijas tiek izsauktas, kad tiek izmantots atbilstošais operators.

Turpinot šo rakstu par Operatora pārslodzi C ++.

Pārslodzes pieeju veidi

Operatora pārslodzi var veikt, izmantojot trīs pieejas

  • Pārslogojot vienreizēju operatoru.
  • Bināra operatora pārslodze.
  • Bināra operatora pārslodze, izmantojot drauga funkciju.

Turpinot šo rakstu par Operatora pārslodzi C ++.

Unary Operator pārslodze

Ļaujiet mums ņemt vērā unāru operatoru ‘-’. Mīnus operators, ja to izmanto kā unāru, prasa tikai vienu operandu. Mēs zinām, ka šis operators maina operanda zīmi, ja to lieto pamata datu mainīgajam. Apskatīsim, kā pārslogot šo operatoru, lai to varētu pielietot objektam tāpat kā int vai float mainīgajam. Ja vienreizējam mīnusam tiek piemērots objekts, tam jāsamazina katrs tā datu elements.

Piemērs:

#include izmantojot nosaukumvietas standartklasi Augstums {public: // Dalībnieks Objekti int pēdas, collas // Konstruktors, lai inicializētu objekta vērtību Augstums (int f, int i) {pēdas = f collas = i} // Operatora pārslodze (-) veikt dekrementu // objekta Augstums darbība void operator- () {pēdas - collas - cout<< 'Feet & Inches after decrement: ' << feet << ' ' ' << inch <

Izeja:

kā izveidot kopu

Paskaidrojums:
Iepriekš minētajā piemērā mēs pārslogojam ‘un’ operatoru, lai veiktu samazinājumu divos augstuma klases mainīgajos. Mēs nododam divus parametrus konstruktoram un saglabājam to vērtības kājas un collas mainīgajos lielumos. Tad mēs definējam operatora pārslodzes funkciju (void operator- ()
), kurā abus mainīgos samazina ar vienu pozīciju.
Kad mēs rakstām -h1, tā izsauc operatora pārslodzes funkciju un samazina konstruktoram nodotās vērtības.

Turpinot šo rakstu par Operatora pārslodzi C ++.

Bināra operatora pārslodze

Tā ir operatora pārslodze, kas darbojas divos operandos. Ņemsim to pašu klases augstuma piemēru, bet šoreiz pievienojiet divus augstuma objektus h1 un h2.

Piemērs:

#include izmantojot nosaukumvietas standartklasi Augstums {public: int pēdas, collas Augstums () {pēdas = 0 collas = 0} Augstums (int f, int i) {pēdas = f collas = i} // Pārslogošanas (+) operators divu attāluma objektu pievienošana, izmantojot bināro operatoru Augstuma operators + (Augstums & d2) // Zvana pēc atsauces {// Izveidojiet objektu, lai atgrieztu Augstums h3 // Veiciet pēdu un collu pievienošanu h3.feet = pēdas + d2.feet h3. inch = inch + d2.inch // Atgrieziet iegūto objektu atgriešanu h3}} int main () {Augstums h1 (3, 7) Augstums h2 (6, 1) Augstums h3 // Izmantojiet pārslogotu operatoru h3 = h1 + h2 cout<< 'Sum of Feet & Inches: ' << h3.feet << ''' << h3.inch << endl return 0 } 

Izeja:

Paskaidrojums:
Augstuma operators + (augstums & h2), šeit atgriežas_funkcijas tips ir klases augstums, tādējādi atgriež objekta h3 klases augstumu. Rindā h3 = h1 + h2 h1 izsauc objektu operatora funkciju un kā parametru ņem h2, pēc tam mēs izmantojam h3.feet = pēdas + d2.feet un h3.inch = inch + d2.inch, kas glabā mainīgo lielumu pēdu un collu vērtību summa mainīgajos, kas saistīti ar objektu h3.
Kad paziņojums ‘h3 = h1 + h2’ izsauc operatora pārslogoto funkciju, objekts h1 uzņēmās atbildību par funkcijas izsaukšanu, un h2 spēlē funkcijas argumenta lomu. Iepriekš minētais izsaukuma paziņojums ir ekvivalents h3 = h1.operator + (h2), tāpēc h2 datu dalībniekam tiek piekļūts tieši un h2 datu dalībniekam (kas tiek nodots kā arguments) piekļūst, izmantojot punktu operatoru.

Operatora pārslodzes noteikumi

  • Tikai esošie operatori var būt pārslogoti, un jaunie operatori nevar būt pārslogoti
  • Pārslogotā operatorā jābūt vismaz vienam lietotāja definētajam datu operandam.
  • Mēs neizmantojam drauga funkciju, lai pārslogotu noteiktus operatorus. Tomēr dalībnieku funkcijas var izmantot, lai pārslogotu šos operatorus.
  • Ja vienreizējie operatori tiek pārslogoti, izmantojot dalībnieka funkciju, viņi nepieņem nepārprotamus argumentus, bet, ja tos pārslogo drauga funkcija, viņi izmanto vienu argumentu.
  • Kad binārie operatori tiek pārslogoti, izmantojot dalībnieka funkciju, viņi izmanto vienu nepārprotamu argumentu, un, ja tie tiek pārslogoti, izmantojot drauga funkciju, viņi ņem divus skaidrus argumentus.

Tādējādi esam nonākuši pie šī raksta par “Operatora pārslodze C ++ versijā” beigām. Ja vēlaties uzzināt vairāk, skatiet uzticamo tiešsaistes mācību uzņēmumu Edureka Java apmācību. Edureka kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem, kā arī dažādām Java sistēmām, piemēram, hibernācijas un pavasara.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.