C ++ funkciju pārslodze (ar piemēriem)

Šajā apmācībā mēs uzzināsim par funkciju pārslodzi C ++ ar piemēriem.

Programmā C ++ divām funkcijām var būt tāds pats nosaukums, ja nodoto argumentu skaits un / vai veids ir atšķirīgs.

Šīs funkcijas ar tādu pašu nosaukumu, bet dažādiem argumentiem sauc par pārslogotām funkcijām. Piemēram:

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

Šeit visas 4 funkcijas ir pārslogotas funkcijas.

Ievērojiet, ka visu šo 4 funkciju atgriešanas veidi nav vienādi. Pārslogotām funkcijām var būt atšķirīgi atgriešanās veidi, taču tiem jābūt atšķirīgiem argumentiem. Piemēram,

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

Šeit abām funkcijām ir viens un tas pats nosaukums, tas pats tips un vienāds argumentu skaits. Tādējādi kompilators radīs kļūdu.

Funkcijas pārslodze, izmantojot dažāda veida parametrus

 // 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; )

Rezultāts

 Absolūtā vērtība -5 = 5 Absolūtā vērtība 5,5 = 5,5
Pārslodzes darbs absolūtai () funkcijai

Šajā programmā mēs pārslogojam absolute()funkciju. Pamatojoties uz parametra tipu, kas nodots funkcijas izsaukuma laikā, tiek izsaukta atbilstošā funkcija.

Funkcijas pārslodze, izmantojot dažādu parametru skaitu

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

Rezultāts

 Vesels skaitlis: 5 Pludinātais skaitlis: 5,5 Vesels skaitlis: 5 un dubultais skaitlis: 5,5

Šeit display()funkcija tiek izsaukta trīs reizes ar dažādiem argumentiem. Atkarībā no nodoto argumentu skaita un veida display()tiek izsaukta atbilstošā funkcija.

Displeja () funkcijas pārslodzes darbs

Visu šo funkciju atgriešanas veids ir vienāds, bet tam nav jābūt funkciju pārslodzei.

Piezīme. Programmā C ++ daudzas bibliotēkas standarta funkcijas ir pārslogotas. Piemēram, sqrt()funkcija var pieņemt double, float, int,uc, kā parametri. Tas ir iespējams, jo sqrt()funkcija ir pārslogota C ++.

Interesanti raksti...