C ++ -toiminnon ylikuormitus (esimerkkien kanssa)

Tässä opetusohjelmassa opitaan funktioiden ylikuormituksesta C ++: ssa esimerkkien avulla.

C ++: ssa kahdella funktiolla voi olla sama nimi, jos välitettyjen argumenttien määrä ja / tai tyyppi on erilainen.

Näillä toiminnoilla, joilla on sama nimi, mutta erilaiset argumentit, käytetään nimitystä ylikuormitetut toiminnot. Esimerkiksi:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Tässä kaikki 4 toimintoa ovat ylikuormitettuja toimintoja.

Huomaa, että kaikkien näiden 4 toiminnon palautustyypit eivät ole samat. Ylikuormitetuilla funktioilla voi olla erilaisia ​​palautustyyppejä, mutta niillä on oltava erilaiset argumentit. Esimerkiksi,

 // Error code int test(int a) ( ) double test(int b)( )

Tässä molemmilla funktioilla on sama nimi, sama tyyppi ja sama määrä argumentteja. Siksi kääntäjä heittää virheen.

Toiminto Ylikuormitus erityyppisillä parametreilla

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Tuotos

 Absoluuttinen arvo -5 = 5 Absoluuttinen arvo 5,5 = 5,5
Absoluuttisen () funktion ylikuormituksen käsittely

Tässä ohjelmassa ylikuormitamme absolute()toimintoa. Funktion kutsun aikana välitetyn parametrityypin perusteella vastaava toiminto kutsutaan.

Toiminto ylikuormitettu käyttämällä eri parametrien määrää

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Tuotos

 Kokonaisluku: 5 Kelluva luku: 5,5 Kokonaisluku: 5 ja kaksinkertainen luku: 5,5

Tässä display()funktiota kutsutaan kolme kertaa erilaisilla argumenteilla. Lähetettyjen argumenttien lukumäärästä ja tyypistä riippuen vastaava display()funktio kutsutaan.

Näytön () toiminnon ylikuormitus

Kaikkien näiden toimintojen palautustyyppi on sama, mutta sen ei tarvitse olla kyse toimintojen ylikuormituksesta.

Huomaa: C ++ : ssa monet kirjaston vakiotoiminnot ovat ylikuormitettuja. Esimerkiksi sqrt()toiminto voidaan toteuttaa double, float, int,jne. Parametreina. Tämä on mahdollista, koska sqrt()toiminto on ylikuormitettu muodossa C ++.

Mielenkiintoisia artikkeleita...