Przeciążanie funkcji to cecha programowania obiektowego, w której dwie lub więcej funkcji może mieć tę samą nazwę, ale różne parametry. Kiedy nazwa funkcji jest przeciążona różnymi zadaniami, nazywa się to przeciążaniem funkcji. W przypadku przeciążania funkcji nazwa funkcji powinna być taka sama, a argumenty powinny być różne. Przeciążanie funkcji można uznać za przykład cechy polimorfizmu w C++.
Jeśli wiele funkcji ma tę samą nazwę, ale parametry funkcji powinny być różne, nazywa się to przeciążaniem funkcji.
Jeśli mamy wykonać tylko jedną operację i posiadanie tej samej nazwy funkcji zwiększa czytelność programu.
Załóżmy, że musisz dodać podane liczby, ale może być dowolna liczba argumentów, jeśli napiszesz funkcję taką jak a(int,int) dla dwóch parametrów i b(int,int,int) dla trzech parametrów, to może być dla Ciebie trudne do zrozumienia zachowania funkcji, ponieważ jej nazwa jest inna.
Parametry powinny spełniać jeden lub więcej niż jeden z następujących warunków przeciążenia funkcji:
jak wydrukować Java
- Parametry powinny mieć inny typ
dodaj(int a, int b)
dodaj (podwójne a, podwójne b)
Poniżej znajduje się realizacja powyższej dyskusji:
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;> }> |
>
>Wyjście
sum = 12 sum = 11.5>
- Parametry powinny mieć inny numer
dodaj(int a, int b)
dodaj(int a, int b, int c)
Poniżej znajduje się realizacja powyższej dyskusji:
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;> }> |
>
>Wyjście
sum = 12 sum = 15>
- Parametry powinny mieć inną sekwencję parametrów.
dodaj(int a, podwójne b)
dodaj(podwójne a, int b)
Poniżej znajduje się realizacja powyższej dyskusji:
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; }> |
>
>Wyjście
Rudyard Kipling, jeśli masz wyjaśnienie
sum = 12.5 sum = 11.5>
Poniżej znajduje się prosty przykład C++ ilustrujący przeciążenie funkcji.
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;> }> |
>
>Wyjście
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; }> |
>
>
Jak działa Przeciążanie funkcji?
- Dokładne dopasowanie :- (Nazwa funkcji i parametr)
- Jeśli A nie znaleziono dokładnego dopasowania: –
->Char, Unsigned char i short są promowane do typu int.
mamta kulkarni aktor
-> Float jest promowany do podwójnego
- Jeśli nie znaleziono dopasowania :
->C++ próbuje znaleźć dopasowanie poprzez standardową konwersję.
- INNY BŁĄD
- Przeciążanie funkcji i typ zwracany
- Funkcje, których nie można przeciążać w C++
- Przeciążanie funkcji i słowo kluczowe const
- Przeciążanie funkcji a przesłanianie funkcji w C++
Najnowsze artykuły na temat przeciążania funkcji w C++