C ++

Preobremenitev funkcije C ++

Preobremenitev funkcije C ++

C ++ je prilagodljiv programski jezik za splošno uporabo. Ta programski jezik je prvotno ustvaril Bjarne Stroustrup, danski računalnik, že leta 1985. C ++ podpira polimorfizem, dedovanje in še več. Ta članek zajema preobremenitev funkcij za doseganje polimorfizma časa prevajanja v programskem jeziku C ++.

Kaj je funkcija?

Funkcija ni nič drugega kot določen del kode, ki na podlagi podanih vhodov izvede določeno nalogo in uporabniku v obliki izhoda vrne zahtevane rezultate. Funkcije se uporabljajo za odpravo ponavljajoče se kode v velikih zbirkah kod.

Po opredelitvi funkcije jo lahko pozneje znova uporabite v istem programu ali v drugem programu.

Sintaksa funkcije

Funkcija v jeziku C ++ ima naslednjo sintakso:

returnType functionName (parameter_list)

..
..
vrnitev return_value;

Vrnitev returnType, parameter_list in return sta neobvezna. Funkcija v jeziku C ++ lahko vrne največ eno vrednost. Če funkcija ne vrne nobene vrednosti, mora biti returnType definiran kot void.

Kaj je preobremenitev funkcije?

V jeziku C ++ imajo lahko več definicij funkcij isto ime funkcije, vendar z različnimi parametri. To se imenuje preobremenitev funkcije. S pomočjo funkcije preobremenitve funkcije lahko v C dosežemo polimorfizem časa prevajanja++.

Funkcije je mogoče preobremeniti na naslednje načine:

  1. Število parametrov je lahko različno
  2. Podatkovni tip parametrov je lahko različen
  3. Zaporedje parametrov je lahko različno

Vendar se za preobremenitev funkcije povratna vrednost ne upošteva. 

Naslednje funkcije so preobremenjene:

  1. dodatek int (int a, int b)
  2. dodatek plovca (plovec f, gloat g)
  3. dodatek float (float f, int i)
  4. dodatek float (int i, float f)
  5. seštevanje int (int a, int b, int c)
  6. dodatek float (float f, float g, float h)

Kot lahko vidite, lahko s pomočjo funkcije preobremenitve funkcije v C ++ obstaja več definicij / funkcionalnosti z istim imenom funkcije in v istem obsegu.

Brez funkcije preobremenitve funkcije bi morali za vsako različico napisati ločeno funkcijo [na primer add_1 (), add_2 () itd.). Na primer, morda boste morali napisati add_1 (), da dodate dve celi števili, add_2 (), da dodate dve floatti itd. Kakor pa lahko vidite zgoraj, lahko funkcijo preobremenitve funkcije uporabite za določanje več različic funkcije “add ()”, hkrati pa ohranite isto ime funkcije.

Naslednje funkcije se ne štejejo za preobremenjene, ker je edina razlika med tema dvema vrstama vrnitve (vrsta vrnitve ni upoštevana pri preobremenitvi funkcije v C ++):

  1. dodatek int (int a, int b)
  2. dodatek s plovcem (int a, int b)

Primeri

Zdaj, ko razumete koncept preobremenitve funkcij, bomo šli skozi nekaj delovnih programov, da bomo ta koncept jasneje razumeli. Obravnavali bomo naslednje primere:

  1. Primer 1: Preprosta funkcija
  2. Primer 2: Preprosta funkcija dodajanja
  3. Primer 3: Preobremenitev funkcije (1)
  4. Primer 4: Preobremenitev funkcije (2)
  5. Primer 5: Preobremenitev funkcije (3)

Prva dva primera pojasnjujeta delovanje običajnih funkcij v jeziku C ++, zadnji trije primeri pa funkcijo preobremenitve funkcije v jeziku C++.

Primer 1: Preprosta funkcija

V tem primeru bomo prikazali, kako lahko preprosto funkcijo definiramo in pokličemo v C++. Določili bomo razred, imenovan "Display", in javno funkcijo, imenovano "display ().”Iz funkcije“ main () ”bomo poklicali funkcijo“ display () ”s pomočjo predmeta razreda“ Display ”(d).

#include
uporaba imenskega prostora std;
razred Display

javno:
prikaz praznine ()

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

;
int main ()

Zaslon d;
d.zaslon ();
vrnitev 0;

Primer 2: Preprosta funkcija dodajanja

V tem primeru bomo prikazali, kako v C definirati preprosto funkcijo “add ()”++. Določili bomo razred z imenom "DemoAdd" in javno funkcijo, imenovano "add ().”Iz funkcije“ main () ”bomo poklicali funkcijo“ add () ”s pomočjo predmeta razreda“ DemoAdd ”(d).

V tem primeru trenutna izvedba funkcije “add ()” sprejema samo dva celoštevilna parametra. To pomeni, da lahko trenutna funkcija »add ()« doda samo dve celi števili.

Če želite namesto dveh dodati tri cela števila, lahko definirate funkcijo z drugačnim imenom, na primer »add_1 ()«. V C ++ je lahko funkcija preobremenjena, kar pomeni, da je mogoče določiti drugo definicijo funkcije “add ()”, da dodate tri cela števila in ohrani isto ime, tj.e., “Dodatek ().”V naslednjem primeru si bomo ogledali, kako preobremeniti funkcijo“ add () ”.

#include
uporaba imenskega prostora std;
razred DemoAdd

javno:
dodatek int (int a, int b)

int rezultat;
rezultat = a + b;
vrniti rezultat;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res;
res = d.seštevanje (i1, i2);
cout << "Result = " << res << endl;
vrnitev 0;

Primer 3: Preobremenitev funkcije (1)

V prejšnjem primeru smo definirali funkcijo “add ()” za dodajanje dveh celih števil in vrnitev izračunanega rezultata. Zdaj bomo v tem primeru preobremenili funkcijo “add ()”, da bomo dodali tri cela števila. Torej, funkcijo “add ()” bomo lahko poklicali z dvema celoceličnima argumentoma, pa tudi s tremi celoštevilskimi argumenti.

Brez funkcije preobremenitve funkcije bi morali napisati drugo funkcijo z drugim imenom.

#include
uporaba imenskega prostora std;
razred DemoAdd

javno:
// Prva definicija funkcije seštevanja ()
dodatek int (int a, int b)

int rezultat;
rezultat = a + b;
vrniti rezultat;

// Preobremenjena različica funkcije add ()
seštevanje int (int a, int b, int c)

int rezultat;
rezultat = a + b + c;
vrniti rezultat;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.seštevanje (i1, i2); // add () z 2 parametroma
res2 = d.seštevanje (i1, i2, i3); // add () s 3 parametri
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
vrnitev 0;

Primer 4: Preobremenitev funkcije (2)

V prejšnjih razdelkih tega članka ste izvedeli, da je mogoče preobremenitev funkcije izvesti na podlagi razlik v vrsti parametrov. Tu smo preobremenili funkcijo “add ()” na podlagi podatkovnega tipa parametra. V prvi različici funkcije seštevanja bomo dodali dve spremenljivki celoštevilčnega tipa; v drugi različici pa bomo dodali dve spremenljivki tipa float.

#include
uporaba imenskega prostora std;
razred DemoAdd

javno:
// Prva definicija dodatka ()
dodatek int (int a, int b)

int rezultat;
rezultat = a + b;
vrniti rezultat;

// Preobremenjena definicija funkcije
dodatek float (float f, float g)

plavajoči rezultat;
rezultat = f + g;
vrniti rezultat;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res1;
plovec f1 = 10.5, f2 = 20.7, res2;
res1 = d.seštevanje (i1, i2); // klican bo dodatek (int a, int b)
res2 = d.seštevanje (f1, f2); // klican bo dodatek (float f, flat g)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
vrnitev 0;

Primer 5: Preobremenitev funkcije (3)

V tem primeru je funkcija “add ()” preobremenjena na podlagi razlik v zaporedju seznama parametrov. To je še en način za preobremenitev funkcije v jeziku C++.

#include
uporaba imenskega prostora std;
razred DemoAdd

javno:
// Prva definicija funkcije funkcije add ()
dodatek float (int a, float b)

plavajoči rezultat;
rezultat = (float) a + b;
vrniti rezultat;

// Preobremenjena definicija funkcije funkcije add ()
dodatek float (float a, int b)

plavajoči rezultat;
rezultat = a + (float) b;
vrniti rezultat;

;
int main ()

DemoAdd d;
int i1 = 10;
plovec f1 = 10.5, res1, res2;
res1 = d.seštevanje (i1, f1); // klican bo dodatek (int a, float b)
res2 = d.seštevanje (f1, i1); // klican bo dodatek (float a, int b)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
vrnitev 0;

Zaključek

C ++ je splošno uporaben in prilagodljiv programski jezik, ki se pogosto uporablja na različnih področjih. Ta programski jezik podpira polimorfizem med prevajanjem in med izvajanjem. V tem članku ste izvedeli, kako doseči polimorfizem časa prevajanja v jeziku C ++ s funkcijo preobremenitve funkcije. To je zelo koristna funkcija v jeziku C ++, ki programerjem pomaga pri pisanju berljive kode. V pomoč je lahko tudi za pisanje kode za večkratno uporabo.

Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...
Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...