logo

Sobrecàrrega de funcions en C++

La sobrecàrrega de funcions és una característica de la programació orientada a objectes on dues o més funcions poden tenir el mateix nom però paràmetres diferents. Quan el nom d'una funció està sobrecarregat amb diferents treballs s'anomena sobrecàrrega de funcions. A Function Overloading, el nom de la funció hauria de ser el mateix i els arguments haurien de ser diferents. La sobrecàrrega de funcions es pot considerar com un exemple d'una característica de polimorfisme en C++.

Si diverses funcions tenen el mateix nom però els paràmetres de les funcions han de ser diferents, es coneix com a sobrecàrrega de funcions.
Si només hem de realitzar una operació i tenir el mateix nom de les funcions augmenta la llegibilitat del programa.
Suposem que heu de fer la suma dels nombres donats, però hi pot haver qualsevol nombre d'arguments, si escriviu la funció com ara a(int,int) per a dos paràmetres i b(int,int,int) per a tres paràmetres, llavors pot ser difícil per a vostè entendre el comportament de la funció perquè el seu nom és diferent.

Els paràmetres han de seguir una o més d'una de les condicions següents per a la sobrecàrrega de funcions:



marc de col·lecció java
  • Els paràmetres haurien de tenir un tipus diferent

afegir (int a, int b)
afegir (doble a, doble b)

A continuació es mostra la implementació de la discussió anterior:

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;> }>

>

>

Sortida

sum = 12 sum = 11.5>
  • Els paràmetres han de tenir un número diferent

afegir (int a, int b)
afegir (int a, int b, int c)

A continuació es mostra la implementació de la discussió anterior:

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;> }>

>

>

Sortida

sum = 12 sum = 15>
  • Els paràmetres haurien de tenir una seqüència diferent de paràmetres.

afegir (int a, doble b)
afegir (doble a, int b)

A continuació es mostra la implementació de la discussió anterior:

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; }>

>

>

Sortida

urfi javed
sum = 12.5 sum = 11.5>

A continuació es mostra un exemple senzill de C++ per demostrar la sobrecàrrega de funcions.

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;> }>

>

>

Sortida

 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++




#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; }>

>

>

Com funciona la sobrecàrrega de funcions?

  • Coincidència exacta :- (Nom de la funció i paràmetre)
  • Si a no es troba una coincidència exacta:

->Char, Unsigned char i short es promocionen a int.

arraylist java

->Float ascendeix a doble

  • Si no es troba cap coincidència :

->C++ intenta trobar una coincidència mitjançant la conversió estàndard.

  • ALTRE ERROR
  1. Sobrecàrrega de funcions i tipus de retorn
  2. Funcions que no es poden sobrecarregar en C++
  3. Sobrecàrrega de funcions i paraula clau const
  4. Sobrecàrrega de funcions vs anul·lació de funcions en C++

Articles recents sobre sobrecàrrega de funcions en C++