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:
- Parametrien määrä voi olla erilainen
- Parametrien tietotyyppi voi olla erilainen
- Parametrien järjestys voi olla erilainen
Palautusarvoa ei kuitenkaan oteta huomioon toiminnon ylikuormituksessa.
Seuraavat toiminnot ovat ylikuormitettuja:
- int lisäys (int a, int b)
- uimurin lisäys (float f, gloat g)
- uimurin lisäys (float f, int i)
- uimurin lisäys (int i, float f)
- int lisäys (int a, int b, int c)
- 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):
- int lisäys (int a, int b)
- 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ä:
- Esimerkki 1: Yksinkertainen toiminto
- Esimerkki 2: Yksinkertainen lisäystoiminto
- Esimerkki 3: Toiminnon ylikuormitus (1)
- Esimerkki 4: Toiminnon ylikuormitus (2)
- 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.