C ++

C ++ Operatora pārslodze

C ++ Operatora pārslodze
Šajā rakstā sniegts ceļvedis par operatora pārslodzi C++. Operatora pārslodze ir noderīga un spēcīga C ++ programmēšanas valodas funkcija. C ++ ļauj pārslogot lielāko daļu iebūvēto operatoru. Šajā apmācībā mēs izmantosim vairākus piemērus, lai parādītu operatora pārslodzes mehānismu.

Kas ir Operators?

Operators ir simbols, kas norāda kompilatoram veikt noteiktu darbību. Piemēram, C ++ ir dažādi operatoru veidi, piemēram, aritmētiskie operatori, loģiskie operatori, relāciju operatori, uzdevumu operatori, operatori Bitwise un citi.

Kas ir Operatora pārslodze?

C ++ valoda ļauj programmētājiem piešķirt operatoriem īpašas nozīmes. Tas nozīmē, ka jūs varat no jauna definēt operatoru lietotāja definētiem datu tipiem C++. Piemēram, “+” izmanto, lai pievienotu iebūvētus datu tipus, piemēram, int, float utt. Lai pievienotu divu veidu lietotāja definētus datus, nepieciešams pārslogot operatoru “+”.

Sintakse operatora pārslodzei

C ++ nodrošina īpašu funkciju ar nosaukumu “operators” operatora pārslodzei. Operatora pārslodzes sintakse ir šāda:

klases paraugsKlase


Publiski:
operatora simbols returnType (argumenti)



;

Šeit “operators” ir atslēgvārds, un “simbols” ir operators, kuru vēlamies pārslogot.

Piemēri

Tagad, kad jūs saprotat operatora pārslodzes vispārējo jēdzienu, ļaujiet mums iziet cauri pāris darba paraugprogrammām, lai jūs varētu konkrētāk saprast šo ideju. Mēs aplūkosim šādus piemērus:

  1. 1. piemērs: Operatora vienreizēja pārslodze (1)
  2. 2. piemērs: Operatora vienreizēja pārslodze (2)
  3. 3. piemērs: binārā operatora pārslodze
  4. 4. piemērs: Operatora relatīvā pārslodze

1. piemērs: Operatora vienreizēja pārslodze (1)

Šajā piemērā mēs parādīsim, kā unāru operatoru var pārslogot C++. Mēs esam definējuši klasi “Square_Box” un publiskās funkcijas “operators ++ ()” un “operators ++ (int)”, lai pārslogotu gan prefiksa, gan pēcfiksa pieauguma operatorus. Funkcijā “main ()” mēs esam izveidojuši objektu “mySquare_Box1.”Pēc tam objektam“ mySquare_Box1 ”esam lietojuši prefiksa un pēcfiksa pieauguma operatorus, lai parādītu operatora vienreizējās pārslodzes.

# iekļaut
izmantojot nosaukumvietu std;
klases Square_Box

Privāts:
pludiņa garums;
pludiņa platums;
pludiņa augstums;
publiski:
Square_Box ()
Square_Box (pludiņš l, pludiņš w, pludiņš h)

garums = l;
platums = w;
augstums = h;

// Operatora pārslodze - prefiksu operators "++"
anulētais operators ++ ()

garums ++;
platums ++;
augstums ++;

// Operatora pārslodze - "++" postfix operators
anulētais operators ++ (int)

garums ++;
platums ++;
augstums ++;

tukša izvade ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
mySquare_Box1 ++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
atgriešanās 0;

2. piemērs: Operatora vienreizēja pārslodze (2)

Šis ir vēl viens piemērs, kurā mēs parādīsim, kā unikāru operatoru var pārslogot C++. Mēs esam definējuši klasi “Square_Box” un publiskās funkcijas “operators - ()” un “operators - (int)”, lai pārslogotu gan prefiksu, gan postfiksu samazināšanas operatorus. Funkcijā “main ()” mēs esam izveidojuši objektu “mySquare_Box1”. Pēc tam objektam “mySquare_Box1” esam lietojuši prefiksa un pēcfiksa samazināšanas operatorus.

# iekļaut
izmantojot nosaukumvietu std;
klases Square_Box

Privāts:
pludiņa garums;
pludiņa platums;
pludiņa augstums;
publiski:
Square_Box ()
Square_Box (pludiņš l, pludiņš w, pludiņš h)

garums = l;
platums = w;
augstums = h;

// Operatora pārslodze - "-" prefiksa operators
anulētais operators - ()

garums--;
platums--;
augstums--;

// Operatora pārslodze - "-" postfix operators
anulētais operators - (int)

garums--;
platums--;
augstums--;

tukša izvade ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
atgriešanās 0;

3. piemērs: binārā operatora pārslodze

Tagad mēs aplūkosim bināro operatoru pārslodzes piemēru. Binārā operatora pārslodzes sintakse nedaudz atšķirsies no operatora vienreizējas pārslodzes. Šajā piemērā mēs pārslogosim operatoru “+”, lai pievienotu divus “Square_Box” objektus.

# iekļaut
izmantojot nosaukumvietu std;
klases Square_Box

Privāts:
pludiņa garums;
pludiņa platums;
pludiņa augstums;
publiski:
Square_Box ()
Square_Box (pludiņš l, pludiņš w, pludiņš h)

garums = l;
platums = w;
augstums = h;

// Operatora pārslodze - operators "+"
Operators Square_Box + (const Square_Box un obj)

Square_Box temp;
temp.garums = garums + obj.garums;
temp.platums = platums + obj.platums;
temp.augstums = augstums + obj.augstums;
atgriešanās temp;

tukša izvade ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0), mySquare_Box2 (2.0, 3.0, 5.0), rezultāts;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.izeja ();
rezultāts = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
rezultāts.izeja ();
atgriešanās 0;

4. piemērs: Operatora relatīvā pārslodze

Tagad mēs aplūkosim relāciju operatora pārslodzes piemēru. Relāciju operatora pārslodzes sintakse ir tāda pati kā binārā operatora pārslodzes sintakse. Šajā piemērā mēs pārslogosim<” and “>”Operatoriem, lai pieteiktos objektiem„ Square_Box ”.

# iekļaut
izmantojot nosaukumvietu std;
klases Square_Box

Privāts:
pludiņa garums;
pludiņa platums;
pludiņa augstums;
publiski:
Square_Box ()
Square_Box (pludiņš l, pludiņš w, pludiņš h)

garums = l;
platums = w;
augstums = h;

// Operatora pārslodze - "<" operator
Bool operators < (const Square_Box& obj)

ja (garums < obj.length)
atgriezties taisnība;
cits
atgriezties nepatiesa;

// Operatora pārslodze - ">" operators
bool operators> (konst Square_Box & obj)

ja (garums> obj.garums)
atgriezties taisnība;
cits
atgriezties nepatiesa;

tukša izvade ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (2.0, 3.0, 5.0), mySquare_Box2 (4.0, 6.0, 8.0);
bool rezultāts;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.izeja ();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.izeja ();
rezultāts = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
atgriešanās 0;

Secinājums

C ++ ir universāla un elastīga programmēšanas valoda, ko plaši izmanto dažādās jomās. Šī programmēšanas valoda atbalsta gan kompilēšanas laika, gan izpildes laika polimorfismu. Šis raksts parādīja, kā veikt operatora pārslodzi C++. Šī ir ļoti noderīga C ++ funkcija, kas izstrādātājam dod papildu pūles, lai definētu operatoru pārslodzei, taču tas noteikti atvieglo klases lietotāja dzīvi.

Instalējiet jaunāko Dolphin emulatoru Gamecube un Wii operētājsistēmai Linux
Delfīnu emulators ļauj jums spēlēt izvēlētās Gamecube un Wii spēles Linux personālajos datoros (PC). Tā kā Dolphin Emulator ir brīvi pieejams un atvē...
Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...
Labākie Linux spēļu konsoles emulatori
Šajā rakstā tiks uzskaitīta populārā Linux spēļu konsoles atdarināšanas programmatūra. Emulācija ir programmatūras saderības slānis, kas atdarina spēļ...