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. piemērs: Operatora vienreizēja pārslodze (1)
- 2. piemērs: Operatora vienreizēja pārslodze (2)
- 3. piemērs: binārā operatora pārslodze
- 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ļautizmantojot 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ļautizmantojot 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ļautizmantojot 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ļautizmantojot 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.