C ++

C ++ operatoriaus perkrova

C ++ operatoriaus perkrova
Šiame straipsnyje pateikiamas operatoriaus perkrovos C vadovas++. Operatoriaus perkrova yra naudinga ir galinga C ++ programavimo kalbos savybė. C ++ leidžia perkrauti daugumą įmontuotų operatorių. Šioje pamokoje naudosime kelis pavyzdžius, kad parodytume operatoriaus perkrovos mechanizmą.

Kas yra operatorius?

Operatorius yra simbolis, nurodantis kompiliatoriui atlikti tam tikrą operaciją. Pvz., C ++ yra įvairių tipų operatoriai, tokie kaip aritmetiniai operatoriai, loginiai operatoriai, reliaciniai operatoriai, priskyrimo operatoriai, bitų operatoriai ir kt.

Kas yra operatoriaus perkrova?

C ++ kalba leidžia programuotojams suteikti ypatingą reikšmę operatoriams. Tai reiškia, kad galite iš naujo apibrėžti vartotojo apibrėžtų duomenų tipų operatorių C++. Pvz., „+“ Naudojamas pridėti įmontuotus duomenų tipus, tokius kaip int, float ir kt. Norint pridėti dviejų tipų vartotojo apibrėžtus duomenis, būtina perkrauti operatorių „+“.

Operatoriaus perkrovos sintaksė

C ++ suteikia specialią funkciją, vadinamą „operatoriumi“, skirtą operatoriaus perkrovai. Toliau pateikiama operatoriaus perkrovos sintaksė:

klasės pavyzdysKlasė


Vieša:
operatoriaus simbolis „returnType“ (argumentai)



;

Čia „operatorius“ yra raktinis žodis, o „simbolis“ - operatorius, kurį norime perkrauti.

Pavyzdžiai

Dabar, kai suprantate bendrą operatoriaus perkrovos sampratą, leiskite mums pereiti kelias veikiančias pavyzdines programas, kad galėtumėte konkrečiau suprasti šią idėją. Pateiksime šiuos pavyzdžius:

  1. 1 pavyzdys: Vienkartinio operatoriaus perkrova (1)
  2. 2 pavyzdys: Vienkartinio operatoriaus perkrova (2)
  3. 3 pavyzdys: Dvejetainio operatoriaus perkrova
  4. 4 pavyzdys: santykinis operatoriaus perkrovimas

1 pavyzdys: Vienkartinio operatoriaus perkrova (1)

Šiame pavyzdyje mes parodysime, kaip nevienodas operatorius gali būti perkrautas C++. Mes apibrėžėme klasę „Square_Box“ ir viešąsias funkcijas „operatorius ++ ()“ ir „operatorius ++ (int)“, kad perkrautume tiek priešdėlio, tiek postfikso prieaugio operatorius. Funkcijoje „main ()“ sukūrėme objektą „mySquare_Box1“.„Tada„ mySquare_Box1 “objektui pritaikėme priešdėlio ir postfix prieaugio operatorius, kad pademonstruotume, jog operatorius per daug perkrautas.

# įtraukti
naudojant vardų sritį std;
klasės „Square_Box“

privatus:
plūdės ilgis;
plūdės plotis;
plūdės aukštis;
vieša:
„Square_Box“ ()
„Square_Box“ (plūdinė l, plūdinė w, plūdinė h)

ilgis = l;
plotis = w;
aukštis = h;

// Operatoriaus perkrova - „++“ prefiksų operatorius
negaliojantis operatorius ++ ()

ilgis ++;
plotis ++;
aukštis ++;

// Operatoriaus perkrova - „++“ postfix operatorius
negaliojantis operatorius ++ (int)

ilgis ++;
plotis ++;
aukštis ++;

negaliojanti išvestis ()

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“.išvestis ();
„mySquare_Box1 ++“;
cout << "Dimensions of mySquare_Box1 = " << endl;
„mySquare_Box1“.išvestis ();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
„mySquare_Box1“.išvestis ();
grąžinti 0;

2 pavyzdys: Vienkartinio operatoriaus perkrova (2)

Tai yra dar vienas pavyzdys, kuriame mes parodysime, kaip vienetinis operatorius gali būti perkrautas C++. Mes apibrėžėme klasę „Square_Box“ ir viešąsias funkcijas „operatorius - ()“ ir „operatorius - (int)“, kad perkrautume tiek priešdėlio, tiek postfikso mažinimo operatorius. Funkcijoje „main ()“ sukūrėme objektą „mySquare_Box1“. Tada „mySquare_Box1“ objektui pritaikėme priešdėlio ir postfix mažinimo operatorius.

# įtraukti
naudojant vardų sritį std;
klasės „Square_Box“

privatus:
plūdės ilgis;
plūdės plotis;
plūdės aukštis;
vieša:
„Square_Box“ ()
„Square_Box“ (plūdinė l, plūdinė w, plūdinė h)

ilgis = l;
plotis = w;
aukštis = h;

// Operatoriaus perkrova - prefiksų operatorius
negaliojantis operatorius - ()

ilgis--;
plotis--;
aukštis--;

// Operatoriaus perkrova - "-" postfix operatorius
negaliojantis operatorius - (int)

ilgis--;
plotis--;
aukštis--;

negaliojanti išvestis ()

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“.išvestis ();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
„mySquare_Box1“.išvestis ();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
„mySquare_Box1“.išvestis ();
grąžinti 0;

3 pavyzdys: Dvejetainio operatoriaus perkrova

Dabar mes pažvelgsime į dvejetainių operatorių perkrovos pavyzdį. Dvejetainio operatoriaus perkrovos sintaksė šiek tiek skirsis nuo vienarūšio operatoriaus perkrovimo. Šiame pavyzdyje perkrausime „+“ operatorių, kad pridėtume du „Square_Box“ objektus.

# įtraukti
naudojant vardų sritį std;
klasės „Square_Box“

privatus:
plūdės ilgis;
plūdės plotis;
plūdės aukštis;
vieša:
„Square_Box“ ()
„Square_Box“ (plūdinė l, plūdinė w, plūdinė h)

ilgis = l;
plotis = w;
aukštis = h;

// Operatoriaus perkrova - operatorius „+“
Operatorius „Square_Box“ + (konst. „Square_Box“ ir obj)

Square_Box temp;
temp.ilgis = ilgis + obj.ilgis;
temp.plotis = plotis + obj.plotis;
temp.aukštis = aukštis + obj.aukštis;
grįžimo temperatūra;

negaliojanti išvestis ()

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), rezultatas;
cout << "Dimensions of mySquare_Box1 = " << endl;
„mySquare_Box1“.išvestis ();
cout << "Dimensions of mySquare_Box2 = " << endl;
„mySquare_Box2“.išvestis ();
rezultatas = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
rezultatas.išvestis ();
grąžinti 0;

4 pavyzdys: santykinis operatoriaus perkrovimas

Dabar mes pažvelgsime į reliacinių operatorių perkrovos pavyzdį. Reliacinių operatorių perkrovos sintaksė yra tokia pati kaip binarinių operatorių perkrovos sintaksė. Šiame pavyzdyje perkrausime „<” and “>“Operatorių kreiptis į„ Square_Box “objektus.

# įtraukti
naudojant vardų sritį std;
klasės „Square_Box“

privatus:
plūdės ilgis;
plūdės plotis;
plūdės aukštis;
vieša:
„Square_Box“ ()
„Square_Box“ (plūdinė l, plūdinė w, plūdinė h)

ilgis = l;
plotis = w;
aukštis = h;

// Operatoriaus perkrova - "<" operator
bool operatorius < (const Square_Box& obj)

jei (ilgis < obj.length)
grįžti tiesa;
Kitas
grąžinti klaidingą;

// Operatoriaus perkrova - operatorius ">"
„Bool“ operatorius> (const Square_Box & obj)

jei (ilgis> obj.ilgis)
grįžti tiesa;
Kitas
grąžinti klaidingą;

negaliojanti išvestis ()

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 rezultatas;
cout << "Dimensions of mySquare_Box1 = " << endl;
„mySquare_Box1“.išvestis ();
cout << "Dimensions of mySquare_Box2 = " << endl;
„mySquare_Box2“.išvestis ();
rezultatas = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
grąžinti 0;

Išvada

C ++ yra bendros paskirties ir lanksti programavimo kalba, plačiai naudojama įvairiose srityse. Ši programavimo kalba palaiko tiek kompiliavimo, tiek vykdymo laiko polimorfizmą. Šis straipsnis parodė, kaip atlikti operatoriaus perkrovą C++. Tai labai naudinga „C ++“ funkcija, kuri prideda papildomų pastangų kūrėjui apibrėžti perkrovos operatorių, tačiau tai neabejotinai palengvina klasės vartotojo gyvenimą.

Kaip pakeisti kairįjį ir dešinįjį pelės mygtukus „Windows 10“ kompiuteryje
Gana įprasta, kad visi kompiuterio pelės įrenginiai yra ergonomiškai sukurti dešiniarankiams. Tačiau yra pelių prietaisų, specialiai sukurtų kairiaran...
Mėgdžiokite pelės paspaudimus, užveskite pelės žymeklį naudodami pelę „Clickless Mouse“ sistemoje „Windows 10“
Pelės ar klaviatūros naudojimas netinkamoje laikysenoje, kai naudojama per daug, gali sukelti daug sveikatos problemų, įskaitant įtampą, riešo kanalo ...
Pridėkite pelės gestus prie „Windows 10“ naudodami šiuos nemokamus įrankius
Pastaraisiais metais kompiuteriai ir operacinės sistemos labai išsivystė. Buvo laikas, kai vartotojai turėjo naudoti komandas naršydami per failų tvar...