C ++

C ++ Funkcijas pārslodze

C ++ Funkcijas pārslodze

C ++ ir elastīga vispārējas nozīmes programmēšanas valoda. Šo programmēšanas valodu sākotnēji 1985. gadā izveidoja dāņu datorzinātniece Bjarne Stroustrup. C ++ atbalsta polimorfismu, mantojumu un daudz ko citu. Šis raksts aptver funkciju pārslodzi, lai sasniegtu kompilēšanas laika polimorfismu C ++ programmēšanas valodā.

Kas ir funkcija?

Funkcija ir nekas cits kā īpašs koda gabals, kas veic noteiktu uzdevumu, pamatojoties uz sniegtajām ieejām, un tā atgriež pieprasītos rezultātus lietotājam izejas formā. Funkcijas tiek izmantotas, lai novērstu atkārtotu kodu lielās koda bāzēs.

Pēc funkcijas definēšanas to var vēlāk izmantot tajā pašā programmā vai citā programmā.

Funkciju sintakse

Funkcijai C ++ ir šāda sintakse:

returnType functionName (parametru saraksts)



return return_value;

ReturnType, parametru saraksts un atgriešanās priekšraksts nav obligāti. Funkcija C ++ var atgriezt ne vairāk kā vienu vērtību. Ja funkcija neatgriež nevienu vērtību, returnType ir jādefinē kā spēkā neesošs.

Kas ir funkcija Pārslodze?

Programmā C ++ vairākām funkciju definīcijām var būt viens un tas pats funkcijas nosaukums, bet ar dažādiem parametriem. To sauc par funkciju pārslodzi. Ar funkciju pārslodzes funkcijas palīdzību C var panākt kompilēšanas laika polimorfismu++.

Funkcijas var pārslogot šādos veidos:

  1. Parametru skaits var būt atšķirīgs
  2. Parametru datu tips var būt atšķirīgs
  3. Parametru secība var būt atšķirīga

Tomēr atgriešanās vērtība netiek uzskatīta par funkciju pārslodzi. 

Šīs funkcijas ir pārslogotas:

  1. int papildinājums (int a, int b)
  2. pludiņa pievienošana (float f, gloat g)
  3. pludiņa pievienošana (pludiņš f, int i)
  4. pludiņa pievienošana (int i, pludiņš f)
  5. int papildinājums (int a, int b, int c)
  6. pludiņa pievienošana (float f, float g, float h)

Kā redzat, ar funkciju C ++ funkciju pārslodzes funkciju var būt vairākas definīcijas / funkcionalitātes ar vienu un to pašu funkcijas nosaukumu un tajā pašā darbības jomā.

Bez funkcijas pārslodzes funkcijas katram variantam jums būs jāraksta atsevišķa funkcija [piemēram, papildinājums_1 (), papildinājums_2 () utt.]. Piemēram, jums, iespējams, būs jāraksta papildinājums_1 (), lai pievienotu divus skaitļus, pievienojums_2 (), lai pievienotu divus pludiņus, un tā tālāk. Tomēr, kā redzat iepriekš, funkciju pārslodzes funkciju var izmantot, lai definētu vairākas funkcijas “add ()” variācijas, saglabājot to pašu funkcijas nosaukumu.

Šīs funkcijas netiek uzskatītas par pārslogotām, jo ​​vienīgā atšķirība starp šīm divām ir atgriešanās tips (atgriešanās veids netiek uzskatīts par funkciju pārslodzi C ++):

  1. int papildinājums (int a, int b)
  2. pludiņa pievienošana (int a, int b)

Piemēri

Tagad, kad jūs saprotat funkciju pārslodzes jēdzienu, mēs veiksim pāris darbības piemēru programmas, lai skaidrāk izprastu šo jēdzienu. Mēs aplūkosim šādus piemērus:

  1. 1. piemērs: vienkārša funkcija
  2. 2. piemērs: vienkārša pievienošanas funkcija
  3. 3. piemērs: Funkciju pārslodze (1)
  4. 4. piemērs: Funkciju pārslodze (2)
  5. 5. piemērs: Funkciju pārslodze (3)

Pirmie divi piemēri izskaidro, kā normālas funkcijas darbojas C ++, bet pēdējie trīs piemēri parāda funkciju pārslodzes funkciju C++.

1. piemērs: vienkārša funkcija

Šajā piemērā mēs parādīsim, kā vienkāršu funkciju var definēt un izsaukt C++. Mēs definēsim klasi ar nosaukumu “Displejs” un publisko funkciju ar nosaukumu “Displejs ().No funkcijas “main ()” mēs sauksim funkciju “display ()” ar klases objekta “Display” palīdzību (d).

# iekļaut
izmantojot nosaukumvietu std;
klases displejs

publiski:
tukšs displejs ()

cout << "Hello World!" << endl;

;
int main ()

Displejs d;
d.displejs ();
atgriešanās 0;

2. piemērs: vienkārša pievienošanas funkcija

Šajā piemērā mēs parādīsim, kā definēt vienkāršu funkciju “add ()” C++. Mēs definēsim klasi ar nosaukumu “DemoAdd” un publisko funkciju ar nosaukumu “papildinājums ().No funkcijas “main ()” ar klases objekta “DemoAdd” (d) palīdzību sauksim funkciju “add ()”.

Šajā piemērā pašreizējā funkcijas “add ()” ieviešana pieņem tikai divus vesela skaitļa parametrus. Tas nozīmē, ka pašreizējā funkcija “add ()” spēj pievienot tikai divus veselus skaitļus.

Lai divu skaitļu vietā pievienotu trīs veselus skaitļus, var definēt funkciju ar citu nosaukumu, piemēram, “papildinājums_1 ()”. Programmā C ++ funkciju var pārslogot, tas nozīmē, ka var definēt vēl vienu funkcijas “add ()” definīciju, lai pievienotu trīs skaitļus un saglabātu to pašu nosaukumu, t.e., "papildinājums().”Nākamajā piemērā mēs aplūkosim, kā pārslogot funkciju“ add () ”.

# iekļaut
izmantojot nosaukumvietu std;
klase DemoAdd

publiski:
int papildinājums (int a, int b)

int rezultāts;
rezultāts = a + b;
atgriešanās rezultāts;

;
int main ()

DemoPievienot d;
int i1 = 10, i2 = 20, res;
res = d.pievienošana (i1, i2);
cout << "Result = " << res << endl;
atgriešanās 0;

3. piemērs: Funkciju pārslodze (1)

Iepriekšējā piemērā mēs definējām funkciju “add ()”, lai pievienotu divus veselus skaitļus un atgrieztu aprēķināto rezultātu. Šajā piemērā mēs pārslogosim funkciju “add ()”, lai pievienotu trīs veselus skaitļus. Tātad mēs varēsim izsaukt funkciju “add ()” ar diviem veselu skaitļu argumentiem, kā arī ar trim veselu skaitļu argumentiem.

Bez funkcijas pārslodzes funkcijas mums būtu jāraksta cita funkcija ar citu nosaukumu.

# iekļaut
izmantojot nosaukumvietu std;
klase DemoAdd

publiski:
// Papildu pirmās funkcijas definīcija ()
int papildinājums (int a, int b)

int rezultāts;
rezultāts = a + b;
atgriešanās rezultāts;

// Funkcijas Add () pārslogota versija
int papildinājums (int a, int b, int c)

int rezultāts;
rezultāts = a + b + c;
atgriešanās rezultāts;

;
int main ()

DemoPievienot d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.pievienošana (i1, i2); // papildinājums () ar 2 parametriem
res2 = d.pievienošana (i1, i2, i3); // papildinājums () ar 3 parametriem
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
atgriešanās 0;

4. piemērs: Funkciju pārslodze (2)

Iepriekšējās šī raksta sadaļās jūs uzzinājāt, ka funkciju pārslodzi var veikt, pamatojoties uz parametru veida atšķirībām. Šeit mēs esam pārslogojuši funkciju “add ()”, pamatojoties uz parametra datu tipu. Pirmajā papildināšanas funkcijas versijā mēs pievienosim divus vesela skaitļa tipa mainīgos; un otrajā versijā mēs pievienosim divus pludiņa tipa mainīgos.

# iekļaut
izmantojot nosaukumvietu std;
klase DemoAdd

publiski:
// Pirmā pievienošanas definīcija ()
int papildinājums (int a, int b)

int rezultāts;
rezultāts = a + b;
atgriešanās rezultāts;

// Pārslogotas funkcijas definīcija
pludiņa pievienošana (pludiņš f, pludiņš g)

pludiņa rezultāts;
rezultāts = f + g;
atgriešanās rezultāts;

;
int main ()

DemoPievienot d;
int i1 = 10, i2 = 20, res1;
pludiņš f1 = 10.5, f2 = 20.7, res2;
res1 = d.pievienošana (i1, i2); // tiks izsaukts papildinājums (int a, int b)
res2 = d.pievienošana (f1, f2); // tiks izsaukts papildinājums (pludiņš f, plakans g)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
atgriešanās 0;

5. piemērs: Funkciju pārslodze (3)

Šajā piemērā funkcija “add ()” ir pārslogota, pamatojoties uz atšķirībām parametru saraksta secībā. Tas ir vēl viens veids, kā pārslogot funkciju C++.

# iekļaut
izmantojot nosaukumvietu std;
klase DemoAdd

publiski:
// Funkcijas Add () pirmās funkcijas definīcija
pludiņa pievienošana (int a, float b)

pludiņa rezultāts;
rezultāts = (pludiņš) a + b;
atgriešanās rezultāts;

// Funkcijas Add () funkcijas pārslogota definīcija
pludiņa pievienošana (pludiņš a, int b)

pludiņa rezultāts;
rezultāts = a + (pludiņš) b;
atgriešanās rezultāts;

;
int main ()

DemoPievienot d;
int i1 = 10;
pludiņš f1 = 10.5, res1, res2;
res1 = d.pievienošana (i1, f1); // tiks izsaukts papildinājums (int a, pludiņš b)
res2 = d.pievienošana (f1, i1); // tiks izsaukts papildinājums (pludiņš a, int b)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << 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. Šajā rakstā jūs uzzinājāt, kā panākt kompilēšanas laika polimorfismu C ++, izmantojot funkcijas pārslodzes funkciju. Šī ir ļoti noderīga funkcija C ++, kas palīdz programmētājiem rakstīt lasāmu kodu. Tas var būt noderīgi arī atkārtoti izmantojama koda rakstīšanai.

Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...
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ē...