Preopterećenje funkcije C ++ (s primjerima)

U ovom uputstvu naučit ćemo o preopterećenju funkcije u C ++ s primjerima.

U C ++-u dvije funkcije mogu imati isto ime ako je broj i / ili vrsta prosljeđenih argumenata različit.

Te funkcije s istim nazivom, ali različiti argumenti su poznate kao preopterećene funkcije. Na primjer:

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

Ovdje su sve 4 funkcije preopterećene.

Primijetite da vrste povratka sve ove 4 funkcije nisu iste. Preopterećene funkcije mogu ili ne moraju imati različite tipove povrata, ali moraju imati različite argumente. Na primjer,

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

Ovdje obje funkcije imaju isto ime, isti tip i isti broj argumenata. Stoga će kompajler izbaciti pogrešku.

Preopterećenje funkcije pomoću različitih vrsta parametara

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

Izlaz

 Apsolutna vrijednost -5 = 5 Apsolutna vrijednost 5,5 = 5,5
Rad preopterećenja za apsolutnu () funkciju

U ovom programu preopterećujemo absolute()funkciju. Na temelju vrste parametra proslijeđenog tijekom poziva funkcije, poziva se odgovarajuća funkcija.

Preopterećenje funkcije pomoću različitog broja parametara

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

Izlaz

 Cijeli broj: 5 Broj plutajućeg broja: 5,5 Cijeli broj: 5 i dvostruki broj: 5,5

Ovdje se display()funkcija poziva tri puta s različitim argumentima. Ovisno o broju i vrsti prosljeđenih argumenata, display()poziva se odgovarajuća funkcija.

Rad preopterećenja za funkciju display ()

Tip povrata svih ovih funkcija je isti, ali to ne mora biti slučaj kod preopterećenja funkcije.

Napomena: U C ++-u su mnoge standardne funkcije knjižnice preopterećene. Na primjer, sqrt()funkcija može potrajati double, float, int,itd, kao parametara. To je moguće jer je sqrt()funkcija preopterećena u C ++.

Zanimljivi članci...