logo

Supraîncărcarea funcției în C++

Supraîncărcarea funcțiilor este o caracteristică a programării orientate pe obiect, în care două sau mai multe funcții pot avea același nume, dar parametri diferiți. Când un nume de funcție este supraîncărcat cu diferite joburi, se numește Supraîncărcare a funcției. În Function Overloading, numele funcției ar trebui să fie același, iar argumentele ar trebui să fie diferite. Supraîncărcarea funcției poate fi considerată un exemplu de caracteristică de polimorfism în C++.

Dacă mai multe funcții au același nume, dar parametrii funcțiilor ar trebui să fie diferiți, este cunoscut sub numele de supraîncărcare a funcției.
Dacă trebuie să efectuăm o singură operație și având același nume al funcțiilor, crește lizibilitatea programului.
Să presupunem că trebuie să efectuați adăugarea numerelor date, dar poate exista orice număr de argumente, dacă scrieți funcția cum ar fi a(int,int) pentru doi parametri și b(int,int,int) pentru trei parametri, atunci poate fi dificil pentru dvs. să înțelegeți comportamentul funcției, deoarece numele acesteia diferă.

Parametrii ar trebui să respecte una sau mai multe dintre următoarele condiții pentru supraîncărcarea funcției:



tcp vs udp
  • Parametrii ar trebui să aibă un alt tip

adaugă (int a, int b)
adaugă (dublu a, dublu b)

Mai jos este implementarea discuției de mai sus:

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

>

>

Ieșire

sum = 12 sum = 11.5>
  • Parametrii ar trebui să aibă un număr diferit

adaugă (int a, int b)
adaugă (int a, int b, int c)

Mai jos este implementarea discuției de mai sus:

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

>

>

Ieșire

sum = 12 sum = 15>
  • Parametrii ar trebui să aibă o secvență diferită de parametri.

adaugă (int a, dublu b)
adaugă (dublu a, int b)

Mai jos este implementarea discuției de mai sus:

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

>

masa de reacții

>

Ieșire

sum = 12.5 sum = 11.5>

Urmează un exemplu simplu C++ pentru a demonstra supraîncărcarea funcției.

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

>

>

Ieșire

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

lista de darts




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

>

>

Cum funcționează supraîncărcarea funcției?

  • Potrivire perfecta :- (Numele funcției și parametrul)
  • Dacă A nu se găsește potrivirea exactă:

->Char, Unsigned char și short sunt promovate la un int.

->Float este promovat la dublu

  • Dacă nu se găsește nicio potrivire :

->C++ încearcă să găsească o potrivire prin conversia standard.

  • ALTE EROARE
  1. Supraîncărcarea funcției și tipul de returnare
  2. Funcții care nu pot fi supraîncărcate în C++
  3. Supraîncărcarea funcției și cuvântul cheie const
  4. Supraîncărcarea funcției vs suprascrierea funcției în C++

Articole recente despre supraîncărcarea funcțiilor în C++