C ++

C ++ Toiminto Ylikuormitus

C ++ Toiminto Ylikuormitus

C ++ on joustava yleiskäyttöinen ohjelmointikieli. Tämän ohjelmointikielen loi alun perin tanskalainen tietojenkäsittelijä Bjarne Stroustrup vuonna 1985. C ++ tukee polymorfismia, perintöä ja muuta. Tämä artikkeli käsittelee toimintojen ylikuormitusta kääntöaikaisen polymorfismin saavuttamiseksi C ++ - ohjelmointikielellä.

Mikä on toiminto?

Funktio ei ole muuta kuin tietty koodikappale, joka suorittaa tietyn tehtävän annettujen syötteiden perusteella, ja se palauttaa pyydetyt tulokset käyttäjälle ulostulona. Toimintoja käytetään toistuvien koodien eliminoimiseen suurissa koodipohjoissa.

Kun olet määrittänyt toiminnon, voit käyttää sitä myöhemmin myöhemmin joko samassa ohjelmassa tai eri ohjelmassa.

Toiminnon syntakse

C ++: n funktiolla on seuraava syntakse:

returnType functionName (parametrien_luettelo)



return return_value; paluu palautusarvo;

ReturnType, parametrilista ja return-lause ovat valinnaiset. Funktio C ++: ssa voi palauttaa enintään yhden arvon. Jos funktio ei palauta arvoa, returnType tulisi määritellä tyhjäksi.

Mikä on toimintojen ylikuormitus?

C ++: ssa useilla funktiomäärityksillä voi olla sama funktion nimi, mutta erilaisilla parametreilla. Tätä kutsutaan toimintojen ylikuormitukseksi. Funktion ylikuormitusominaisuuden avulla kääntöaikapolymorfismi voidaan saavuttaa C: ssä++.

Toiminnot voidaan ylikuormittaa seuraavilla tavoilla:

  1. Parametrien määrä voi olla erilainen
  2. Parametrien tietotyyppi voi olla erilainen
  3. Parametrien järjestys voi olla erilainen

Palautusarvoa ei kuitenkaan oteta huomioon toiminnon ylikuormituksessa. 

Seuraavat toiminnot ovat ylikuormitettuja:

  1. int lisäys (int a, int b)
  2. uimurin lisäys (float f, gloat g)
  3. uimurin lisäys (float f, int i)
  4. uimurin lisäys (int i, float f)
  5. int lisäys (int a, int b, int c)
  6. uimurin lisäys (float f, float g, float h)

Kuten näette, C ++: n toimintojen ylikuormitustoiminnon avulla voi olla useita määritelmiä / toimintoja samalla toiminnon nimellä ja samassa laajuudessa.

Ilman toimintojen ylikuormitusominaisuutta sinun on kirjoitettava jokaiselle muunnelmalle erillinen toiminto [esimerkiksi lisäys_1 (), lisäys_2 () jne.]. Voit joutua kirjoittamaan esimerkiksi add_1 () kahden kokonaisluvun lisäämiseksi, lisääminen_2 () lisäämään kaksi floatia ja niin edelleen. Kuten yllä voit nähdä, toiminnon ylikuormitustoimintoa voidaan käyttää määrittämään useita lisäyksiä (add) -funktiolle pitäen kuitenkin sama funktion nimi.

Seuraavien toimintojen ei katsota olevan ylikuormitettuja, koska ainoa ero näiden kahden välillä on palautustyyppi (palautustyyppiä ei oteta huomioon toimintojen ylikuormituksessa C ++: ssa):

  1. int lisäys (int a, int b)
  2. kelluva lisäys (int a, int b)

Esimerkkejä

Nyt kun ymmärrät toimintojen ylikuormituksen käsitteen, käymme läpi muutaman toimivan esimerkkiohjelman ymmärtämään tätä käsitettä selkeämmin. Käsittelemme seuraavia esimerkkejä:

  1. Esimerkki 1: Yksinkertainen toiminto
  2. Esimerkki 2: Yksinkertainen lisäystoiminto
  3. Esimerkki 3: Toiminnon ylikuormitus (1)
  4. Esimerkki 4: Toiminnon ylikuormitus (2)
  5. Esimerkki 5: Toiminnon ylikuormitus (3)

Kaksi ensimmäistä esimerkkiä selittävät, kuinka normaalit toiminnot toimivat C ++: ssa, kun taas kolme viimeistä esimerkkiä esittävät C: n toimintojen ylikuormitustoiminnon++.

Esimerkki 1: Yksinkertainen toiminto

Tässä esimerkissä osoitetaan, kuinka yksinkertainen funktio voidaan määritellä ja kutsua C: ssä++. Määritämme luokan nimeltä Näyttö ja julkisen toiminnon nimeltä Näyttö ()."Kutsumme" main () "-toiminnosta" display () "-toiminnon" Display "-luokan objektin (d) avulla.

#sisältää
käyttämällä nimitilaa vakio;
luokan näyttö

julkinen:
mitätön näyttö ()

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

;
int main ()

Näyttö d;
d.näyttö();
paluu 0;

Esimerkki 2: Yksinkertainen lisäystoiminto

Tässä esimerkissä osoitetaan, kuinka määritetään yksinkertainen "lisäys ()" -funktio C: ssä++. Määritämme luokan nimeltä "DemoAdd" ja julkisen toiminnon nimeltä "lisäys ().”Kutsumme funktiosta“ main () ”funktio“ add () ”luokan objektin“ DemoAdd ”(d) avulla.

Tässä esimerkissä lisäys () -funktion nykyinen toteutus hyväksyy vain kaksi kokonaislukuparametriä. Tämä tarkoittaa, että nykyinen "lisäys ()" -toiminto pystyy lisäämään vain kaksi kokonaislukua.

Jos haluat lisätä kolme kokonaislukua kahden sijasta, voidaan määrittää funktio, jolla on eri nimi, kuten “additi_1 ()”. C ++: ssa funktio voidaan ylikuormittaa, mikä tarkoittaa, että toinen lisäys () -funktion määritelmä voidaan määrittää lisäämään kolme kokonaislukua ja pitämään sama nimi, ts.e., "lisäys().”Seuraavassa esimerkissä tarkastellaan, kuinka“ add () ”-toiminto ylikuormitetaan.

#sisältää
käyttämällä nimitilaa vakio;
luokka DemoLisää

julkinen:
int lisäys (int a, int b)

int tulos;
tulos = a + b;
paluutulos;

;
int main ()

DemoLisää d;
int i1 = 10, i2 = 20, res;
res = d.lisäys (i1, i2);
cout << "Result = " << res << endl;
paluu 0;

Esimerkki 3: Toiminnon ylikuormitus (1)

Edellisessä esimerkissä määriteltiin toiminto "additio" () lisäämään kaksi kokonaislukua ja palauttamaan laskettu tulos. Tässä esimerkissä ylikuormitamme “lisäys ()” -toimintoa kolmen kokonaisluvun lisäämiseksi. Joten pystymme kutsumaan "add ()" -funktion kahdella kokonaisluku argumentilla sekä kolmella kokonaislukuargumentilla.

Ilman toimintojen ylikuormitusominaisuutta meidän olisi kirjoitettava toinen funktio eri nimellä.

#sisältää
käyttämällä nimitilaa vakio;
luokka DemoLisää

julkinen:
// Ensimmäisen funktion määrittely lisäykselle ()
int lisäys (int a, int b)

int tulos;
tulos = a + b;
paluutulos;

// Lisäys () -toiminnon ylikuormitettu versio
int lisäys (int a, int b, int c)

int tulos;
tulos = a + b + c;
paluutulos;

;
int main ()

DemoLisää d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.lisäys (i1, i2); // lisäys () 2 parametrilla
res2 = d.lisäys (i1, i2, i3); // lisäys () 3 parametrilla
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
paluu 0;

Esimerkki 4: Toiminnon ylikuormitus (2)

Tämän artikkelin aiemmissa osioissa opit, että toimintojen ylikuormitus voidaan suorittaa parametrityyppien erojen perusteella. Tässä olemme ylikuormittaneet “lisäys ()” -funktion parametrin tietotyypin perusteella. Lisäysfunktion ensimmäiseen versioon lisätään kaksi kokonaislukutyyppistä muuttujaa; ja toiseen versioon lisätään kaksi float-tyyppistä muuttujaa.

#sisältää
käyttämällä nimitilaa vakio;
luokka DemoLisää

julkinen:
// Lisäyksen ensimmäinen määritelmä ()
int lisäys (int a, int b)

int tulos;
tulos = a + b;
paluutulos;

// Ylikuormitetun funktion määritelmä
uimurin lisäys (float f, float g)

kelluva tulos;
tulos = f + g;
paluutulos;

;
int main ()

DemoLisää d;
int i1 = 10, i2 = 20, res1;
uimuri f1 = 10.5, f2 = 20.7, res2;
res1 = d.lisäys (i1, i2); // lisätään (int a, int b)
res2 = d.lisäys (f1, f2); // lisätään (float f, flat g)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
paluu 0;

Esimerkki 5: Toiminnon ylikuormitus (3)

Tässä esimerkissä lisäys () -toiminto on ylikuormitettu parametriluettelon järjestyserojen perusteella. Tämä on toinen tapa ylikuormittaa funktiota C: ssä++.

#sisältää
käyttämällä nimitilaa vakio;
luokka DemoLisää

julkinen:
// Addition () -funktion ensimmäinen funktion määritelmä
uimurin lisäys (int a, float b)

kelluva tulos;
tulos = (kelluva) a + b;
paluutulos;

// Ylikuormitetun lisäyksen () -funktion määritelmä
float-lisäys (float a, int b)

kelluva tulos;
tulos = a + (kelluva) b;
paluutulos;

;
int main ()

DemoLisää d;
int i = 10;
uimuri f1 = 10.5, res1, res2;
res1 = d.lisäys (i1, f1); // lisätään (int a, float b)
res2 = d.lisäys (fl, i1); // kutsutaan lisäys (float a, int b)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
paluu 0;

Johtopäätös

C ++ on yleiskäyttöinen ja joustava ohjelmointikieli, jota käytetään laajasti eri aloilla. Tämä ohjelmointikieli tukee sekä kääntö- että ajoaikapolymorfismia. Tässä artikkelissa opit saavuttamaan kääntöaikaisen polymorfismin C ++: ssa käyttämällä funktion ylikuormitustoimintoa. Tämä on erittäin hyödyllinen ominaisuus C ++: ssa, joka auttaa ohjelmoijia kirjoittamaan luettavaa koodia. Se voi olla hyödyllistä myös uudelleenkäytettävän koodin kirjoittamisessa.

How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...
Ilmaiset ja avoimen lähdekoodin pelimoottorit Linux-pelien kehittämiseen
Tämä artikkeli kattaa luettelon ilmaisista ja avoimen lähdekoodin pelimoottoreista, joita voidaan käyttää 2D- ja 3D-pelien kehittämiseen Linuxissa. Tä...