Přetížení funkce C ++ (s příklady)

V tomto kurzu se na příkladech dozvíme o přetížení funkcí v C ++.

V C ++ mohou mít dvě funkce stejný název, pokud je počet a / nebo typ předaných argumentů odlišný.

Tyto funkce, které mají stejný název, ale různé argumenty, jsou známé jako přetížené funkce. Například:

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

Zde jsou všechny 4 funkce přetížené.

Všimněte si, že návratové typy všech těchto 4 funkcí nejsou stejné. Přetížené funkce mohou nebo nemusí mít různé návratové typy, ale musí mít různé argumenty. Například,

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

Zde mají obě funkce stejný název, stejný typ a stejný počet argumentů. Proto kompilátor vyvolá chybu.

Přetížení funkce pomocí různých typů parametrů

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

Výstup

 Absolutní hodnota -5 = 5 Absolutní hodnota 5,5 = 5,5
Práce s přetížením pro funkci absolutní ()

V tomto programu absolute()funkci přetížíme. Na základě typu parametru předaného během volání funkce je volána odpovídající funkce.

Přetížení funkce pomocí jiného počtu parametrů

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

Výstup

 Celé číslo: 5 Plovoucí číslo: 5,5 Celé číslo: 5 a dvojité číslo: 5,5

Zde je display()funkce volána třikrát s různými argumenty. V závislosti na počtu a typu předaných argumentů display()je volána odpovídající funkce.

Práce s přetížením pro funkci display ()

Návratový typ všech těchto funkcí je stejný, ale to nemusí být případ přetížení funkce.

Poznámka: V C ++ je přetíženo mnoho standardních funkcí knihovny. Například, sqrt()funkce může trvat double, float, int,atd. Jako parametry. To je možné, protože sqrt()funkce je v C ++ přetížena.

Zajímavé články...