Kaj je preobremenitev v C ++?

C ++ omogoča pisanje prožne in lahko razumljive kode s pomočjo koncepta know kot Overloading. Omogoča doseganje različnih funkcionalnosti znotraj obstoječe kode z zelo minimalnimi spremembami, s čimer se zmanjša podvojena koda. V bistvu obstajata predvsem dve osnovni vrsti preobremenitve, ki ju podpira C ++.

C ++ nam omogoča, da pišemo funkcije z istim imenom, vendar z razliko v podatkovnih vrstah ali v številu argumentov, ki so mu bili posredovani, ta funkcija je znana kot Function Overloading v C ++. Ta funkcija omogoča razvijalcem, da v istem obsegu definirajo funkcije z istim imenom. Z istim imenom funkcije predstavljajo isto funkcijo, kar omogoča doseganje polimorfizma v prevajalskem času. Prednostna preobremenitev ima eno prednost, saj izboljša berljivost kode.

V C ++ je na voljo še ena funkcija, ki omogoča ponovno opredelitev obstoječe funkcionalnosti vgrajenih operaterjev, imenovane Operator Overloading . Ta funkcija omogoča uporabo vgrajenih operaterjev na uporabniško definiranih tipih. Operater preobremenitev kode poenostavi s ponovnim definiranjem funkcionalnosti v skladu z uporabniškimi zahtevami. V tem članku se bomo osredotočili tako na preobremenitev funkcije kot na preobremenitev operaterja, videli bomo podrobnosti o njej in kako se uporablja v C ++.

Kako preobremenitev deluje v C ++?

  • Funkcija Preobremenitev: Omogoča nam lahko definiranje funkcije z istim imenom, vendar razlikuje funkcije glede na vrsto parametrov, ki so jim bili posredovani, ali število parametrov, ki so jim bili predani. Torej bodo vse funkcije imele isto ime, vendar bodo imele bodisi drugačen podatkovni tip bodisi bodo imele različno število parametrov. Ko se pokliče funkcija, bo prevajalnik izbral funkcijo z vrsto ujemajočega se parametra in s številom argumentov. Zdaj lahko njegovi razvijalci glede na zahteve izberejo, katero funkcijo bodo poklicali. Izberejo lahko ustrezno funkcijo s posredovanjem parametrov po pravilih.
  • Operator preobremenitev: operaterjem omogoča delo za uporabniško definirane tipe podatkov, tj. Razrede. Obstoječi operaterji so preobremenjeni in jim daje moč za delovanje na uporabniško definiranem razredu in objektih. Preobremenitev operaterja se doseže z definiranjem funkcije s posebnim imenom. Funkcija bo imela ime „operator“, ki mu bo sledil simbol operaterja. Simbol operaterja lahko uporabimo neposredno na uporabniško določenem tipu podatkov in izvedemo operacijo. Potrebno dejanje ali delovanje določimo v tej posebni funkciji pri nas. S preobremenitvijo operaterja lahko izvajamo operacije različnih vrst na isti vrsti podatkov.

Vrste preobremenitve v C ++

Funkcija Preobremenitev lahko kadar koli dosežemo z vidika uporabe parametrov. Ko rečemo uporaba parametrov, na katere se nanaša, vrsto parametrov ali število parametrov ali zaporedje parametrov. Torej, funkcija calc (int x, float y) s parametri (int x, float y) se razlikuje od funkcije, definirane kot calc (float x, int y), ki ima različne parametre z različnim podatkovnim tipom.

Obstaja več vrst, pri katerih je mogoče doseči preobremenitev funkcij. Oglejmo si preprost primer preobremenitve funkcije v C ++.

#include
using namespace std;
class Display (
public:
static void show (char message() ) (
cout<< "Only Message:" << message << endl;
)
static void show (int messageId, char message()) (
cout<< "Message with Id:";
cout << messageId << " Message:" << message << endl;
)
);
int main (void) (
Display obj;
char message() = "Welcome";
int messageId = 10;
obj.show(message); //calling overloaded function with 1 parameter
obj.show(messageId, message);//calling overloaded function with 2 parameters
return 0;
)

Tukaj imamo razred Display, ki ima razstavljeno metodo preobremenitve. Metoda show bo poklicana glede na argumente, ki so ji bili posredovani.

Izhod:

Samo sporočilo: Dobrodošli

Sporočilo z Id: 10 Sporočilo: Dobrodošli

Preobremenitev operaterja je mogoče doseči na skoraj vseh vgrajenih vrstah podatkov, ki so na voljo v C ++. Ni tako različnih vrst preobremenitve operaterja, vendar so lahko pristopi različni, ki se uporabljajo za dosego preobremenitve operaterja. Operaterji, kot so Unar, Binarni, Relacijski, Dodeljevanje itd., So lahko preobremenjeni v C ++.

Poglejmo preprost primer preobremenitve operaterja ++. V tem primeru bomo namesto primitivnega tipa podatkov uporabili operater ++ na uporabniško definiranem predmetu razreda.

#include
using namespace std;
class Bike (
private:
int height;
public:
Bike (): height (80) () //constructor which initializes the height variable
void operator ++() (
height = height + 5;
)
void Specs () (
cout << "The height of the bike is: " < )
);
int main(void)
(
Bike bike;
bike.Specs();
++bike; //calling overloaded operator
bike.Specs();
return 0;
)
#include
using namespace std;
class Bike (
private:
int height;
public:
Bike (): height (80) () //constructor which initializes the height variable
void operator ++() (
height = height + 5;
)
void Specs () (
cout << "The height of the bike is: " < )
);
int main(void)
(
Bike bike;
bike.Specs();
++bike; //calling overloaded operator
bike.Specs();
return 0;
)

Torej, imamo predmet, katerega začetna višina bo nastavljena na 80 in se bo povečala za 5, ko pokličemo operaterja ++ nad njim.

Izhod:

Višina kolesa je: 80
Višina kolesa je: 85

Pravila preobremenitve v C ++

Spodaj so navedena naslednja pravila C ++ za preobremenitev:

Pravila za preobremenitev funkcije

  • Pri preobremenitvi funkcije se mora funkcija razlikovati glede na vrsto podatkov, število ali zaporedje parametrov. Ne more se preprosto razlikovati na podlagi vrste vrnitve funkcije.

Pravila za preobremenitev upravljavca

  • Samo vgrajeni operaterji so lahko preobremenjeni, novih operaterjev ni mogoče preobremeniti.
  • Obstajajo štirje operaterji, ki jih ni mogoče preobremeniti, to so . (izbira članov), :: (ločljivost obsega), . * (izbira članov z uporabo kazalca na funkcijo) in ?: (ternarni operater).
  • Preobremenjeni operater bo vseboval vsaj en operand uporabniško definirane vrste podatkov.
  • Obstajajo določeni operaterji, ki jih ni mogoče preobremeniti s pomočjo funkcije prijatelja, vendar jih je mogoče preobremeniti kot člansko funkcijo.

Zaključek

Torej je preobremenitev v C ++ edinstvena lastnost, ki nam ponuja številne prednosti. Obstajata predvsem dve vrsti preobremenitve, tj funkcijska preobremenitev in preobremenitev operaterja. Preobremenitev s funkcijami izboljša berljivost kode, s čimer ostane isto ime za isto dejanje. Preobremenitev operaterja omogoča ponovno opredelitev obstoječe funkcionalnosti operaterjev, tako da jim daje poseben pomen. Oboje je zelo uporabno pri programiranju v C ++.

Priporočeni članki

To je vodnik za preobremenitev v C ++. Tukaj razpravljamo o njegovem delu, pravilih in dveh vrstah preobremenitve pri c ++, tj funkcijski preobremenitvi in ​​preobremenitvi operaterja. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Preobremenitev v PHP
  2. Kopiraj konstruktor v C ++
  3. Preobremenitev vs Prevladovanje
  4. Izjava o preklopu v C ++
  5. Preobremenitev na Javi
  6. Python preobremenitev