logo

Toimintojen ylikuormitus C++:ssa

Funktioiden ylikuormitus on olioohjelmoinnin ominaisuus, jossa kahdella tai useammalla funktiolla voi olla sama nimi, mutta eri parametrit. Kun funktion nimi on ylikuormitettu eri töillä, sitä kutsutaan funktion ylikuormitukseksi. Function Overloading -kohdassa funktion nimen tulee olla sama ja argumenttien tulee olla erilaisia. Funktioiden ylikuormitusta voidaan pitää esimerkkinä C++:n polymorfismista.

Jos useilla funktioilla on sama nimi, mutta funktioiden parametrien tulisi olla erilaisia, kutsutaan funktion ylikuormitukseksi.
Jos meidän on suoritettava vain yksi operaatio ja funktioiden sama nimi lisää ohjelman luettavuutta.
Oletetaan, että sinun on suoritettava annettujen lukujen yhteenlasku, mutta argumentteja voi olla kuinka monta tahansa, jos kirjoitat funktion kuten a(int,int) kahdelle parametrille ja b(int,int,int) kolmelle parametrille, niin se Sinun voi olla vaikea ymmärtää funktion toimintaa, koska sen nimi vaihtelee.

Parametrien tulee noudattaa yhtä tai useampaa seuraavista ehdoista toiminnon ylikuormitukselle:



java satunnainen matematiikka satunnainen
  • Parametrien tulee olla eri tyyppisiä

add(int a, int b)
lisää (double a, tupla b)

Alla on yllä olevan keskustelun toteutus:

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }>

>

>

Lähtö

sum = 12 sum = 11.5>
  • Parametreilla tulee olla eri numero

add(int a, int b)
add(int a, int b, int c)

Alla on yllä olevan keskustelun toteutus:

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }>

>

>

yhteensopivuustestaus
Lähtö

sum = 12 sum = 15>
  • Parametreilla tulee olla erilainen parametrisarja.

add(int a, double b)
add(double a, int b)

Alla on yllä olevan keskustelun toteutus:

C++




#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

Lähtö

sum = 12.5 sum = 11.5>

Seuraavassa on yksinkertainen C++-esimerkki toimintojen ylikuormituksen havainnollistamiseksi.

CPP




#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }>

>

>

Lähtö

 Here is int 10 Here is float 10.1 Here is char* ten>

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }>

>

>

C++




alleviivaa teksti css:llä
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

Miten Function Overloading toimii?

  • Tarkka ottelu :- (Toiminnon nimi ja parametri)
  • Jos a tarkkaa vastaavuutta ei löydy:

->Char, Unsigned char ja short ylennetään int.

->Float ylennetään tuplaukseen

  • Jos vastaavuutta ei löydy :

->C++ yrittää löytää vastaavuuden vakiomuunnoksen avulla.

  • MUU VIRHE
  1. Toiminnon ylikuormitus ja palautustyyppi
  2. Toiminnot, joita ei voi ylikuormittaa C++:ssa
  3. Funktioiden ylikuormitus ja const-avainsana
  4. Funktioiden ylikuormitus vs funktion ohitus C++:ssa

Viimeisimmät artikkelit toimintojen ylikuormituksesta C++:ssa