Mis on C ++ ülekoormus?

C ++ võimaldab kirjutada koodi paindlikult ja hõlpsasti mõistetavaks, kasutades mõistet „ülekoormus”. See võimaldab olemasolevas koodis saavutada erinevaid funktsioone väga minimaalsete muudatustega, vähendades sellega duplikaadi koodi. Põhimõtteliselt on peamiselt kaks ülekoormamise peamist tüüpi, mida toetab C ++.

C ++ võimaldab meil kirjutada sama nimega funktsioone, kuid andmetüüpide või sellele edastatud argumentide arvu erinevuse korral nimetatakse seda funktsiooni funktsioonis C ++ funktsiooni ülekoormamiseks. See funktsioon võimaldab arendajatel määratleda sama nimega funktsioonid sama ulatuse piires. Sama nimega funktsioonid esindavad sama funktsionaalsust, võimaldades seega kompileerimise aja polümorfismi saavutamist. Funktsiooni ülekoormamisel on üks eelis, et see parandab koodi loetavust.

C ++ pakub veel ühte funktsiooni, mis võimaldab sisseehitatud operaatorite olemasolevat funktsionaalsust uuesti määratleda, mida tuntakse operaatori ülekoormamise all . See funktsioon võimaldab kasutada sisseehitatud operaatoreid kasutaja määratletud tüüpidel. Operaatori ülekoormamine lihtsustab koodi, määratledes funktsionaalsuse vastavalt kasutaja nõudmistele uuesti. Selles artiklis keskendume nii funktsiooni ülekoormamisele kui ka operaatori ülekoormamisele, näeme selle üksikasju ja kuidas seda kasutatakse C ++ -s.

Kuidas C ++-is ülekoormus töötab?

  • Funktsioonide ülekoormus: see võimaldab meil funktsiooni määratleda sama nimega, kuid see eristab funktsioone sõltuvalt neile edastatud parameetrite tüübist või neile edastatud parameetrite arvust. Seega on kõigil funktsioonidel sama nimi, kuid neil on kas erinev andmetüüp või sellele on antud erinev arv parameetreid. Kui funktsioon kutsutakse, valib kompilaator funktsiooni koos sobivat tüüpi parameetriga ja argumentide arvuga. Nüüd saavad selle arendajad vastavalt vajadusele valida, millist funktsiooni helistada. Nad saavad valida sobiva funktsiooni, läbides reegleid järgivad parameetrid.
  • Operaatori ülekoormus: see võimaldab operaatoritel töötada kasutaja määratletud andmetüüpide, st klasside jaoks. Olemasolevad operaatorid on üle koormatud ja neil on volitused tegutseda kasutaja määratletud klassi ja objektidega. Operaatori ülekoormus saavutatakse funktsiooni määratlemisel erinimega. Funktsioon kannab nime “operaator”, millele järgneb operaatori sümbol. Saame kasutada operaatori sümbolit otse kasutaja määratletud andmetüübil ja teostada toimingut. Vajaliku toimingu või toimingu määratleme selles erifunktsioonis. Operaatori ülekoormamise abil saame teha sama tüüpi andmetüübiga erinevat tüüpi toiminguid.

C ++ ülekoormuse tüübid

Funktsioonide ülekoormamist saab parameetrite kasutamise osas igal juhul saavutada. Kui öeldakse parameetrite kasutamine, siis see viitab parameetrite tüübile või parameetrite arvule või parameetrite jadale. Niisiis, funktsioon calc (int x, float y), millel on parameetrid (int x, float y), erineb funktsioonist, mida määratletakse calc (float x, int y), millel on erinevad andmetüübiga parameetrid.

Funktsioonide ülekoormamist saab saavutada mitut tüüpi. Vaatame lihtsat näidet funktsiooni ülekoormamise kohta C ++ -s.

#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;
)

Siin on meil klassiekraan, millel on ülekoormatud meetodinäitus. Showmeetodit kutsutakse sõltuvalt sellele edastatud argumentidest.

Väljund:

Ainus sõnum: Tere tulemast!

Teade ID-ga: 10 Sõnum: Tere tulemast

Operaatori ülekoormamist saab saavutada peaaegu kõigi C ++ -s saadaolevate sisseehitatud andmetüüpide abil. Operaatori ülekoormamise tüübid ei ole sellised, kuid lähenemisviisid, mida kasutatakse operaatori ülekoormamise saavutamiseks, võivad olla erinevad. Operaatoreid, näiteks Unary, Binary, Relational, Assignment jne, saab C ++ -s üle koormata.

Vaatame lihtsat näidet ++ operaatori ülekoormamisest. Selles näites primitiivse andmetüübi asemel kasutame kasutaja määratletud klassiobjektil operaatorit ++.

#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;
)

Niisiis, meil on objekt, mille algkõrguseks seatakse 80 ja seda suurendatakse 5 võrra, kui kutsume operaatori ++ kohale.

Väljund:

Jalgratta kõrgus on: 80
Jalgratta kõrgus on: 85

C ++ ülekoormamise reeglid

Allpool on toodud järgmised C ++ ülekoormamise reeglid:

Funktsioonide ülekoormamise reeglid

  • Funktsiooni ülekoormamisel peab funktsioon erinema andmetüübi, arvu või parameetrite jada osas. See ei saa erineda lihtsalt funktsiooni tagastamise tüübi põhjal.

Reeglid operaatori ülekoormamiseks

  • Ainult sisseehitatud operaatoreid saab üle koormata, uusi operaatoreid ei saa üle koormata.
  • Neli operaatorit, mida ei saa üle koormata, on neli . (liikme valik), :: (ulatuse eraldusvõime), . * (liikme valik, kasutades funktsiooni osuti) ja?: (kolmepoolne operaator).
  • Ülekoormatud operaator sisaldab vähemalt ühte kasutaja määratletud andmetüübi operandi.
  • Teatud operaatoreid ei saa sõbrafunktsiooni abil üle koormata, kuid neid saab liikmesfunktsioonina üle koormata.

Järeldus

Niisiis, C ++ -s ülekoormamine on ainulaadne omadus, mis pakub meile mitmeid eeliseid. Peamiselt on kahte tüüpi ülekoormamist, st funktsioonide ülekoormamine ja operaatori ülekoormamine. Funktsiooni ülekoormamine parandab koodi loetavust, hoides sama toimingu jaoks sama nime. Operaatorite ülekoormus võimaldab operaatorite olemasolevat funktsionaalsust uuesti määratleda, andes neile erilise tähenduse. Mõlemad on C ++ programmeerimisel väga kasulikud.

Soovitatavad artiklid

See on juhend C ++ ülekoormamise kohta. Siin käsitleme selle toimimist, reegleid ja kahte tüüpi ülekoormamist c ++ -s, st funktsioonide ülekoormamist ja operaatori ülekoormamist. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. Ülekoormamine PHP-s
  2. Kopeeri konstruktor C ++-s
  3. Ülekoormamine vs alistamine
  4. Lülitage avaldus sisse C ++
  5. Ülekoormus Java-s
  6. Pythoni ülekoormamine

Kategooria: