Preťaženie funkcií v C ++ (s príkladmi)

V tomto tutoriále sa na príkladoch dozvieme o preťažení funkcií v C ++.

V C ++ môžu mať dve funkcie rovnaký názov, ak je počet a / alebo typ odovzdaných argumentov odlišný.

Tieto funkcie, ktoré majú rovnaký názov, ale rôzne argumenty, sú známe ako preťažené funkcie. Napríklad:

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

Tu sú všetky 4 funkcie preťažené.

Všimnite si, že návratové typy všetkých týchto 4 funkcií nie sú rovnaké. Preťažené funkcie môžu, ale nemusia mať rôzne návratové typy, musia však mať odlišné argumenty. Napríklad,

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

Tu majú obe funkcie rovnaký názov, rovnaký typ a rovnaký počet argumentov. Preto kompilátor spôsobí chybu.

Preťaženie funkcií pomocou rôznych typov parametrov

 // 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ýkon

 Absolútna hodnota -5 = 5 Absolútna hodnota 5,5 = 5,5
Práca s preťažením pre funkciu absolute ()

V tomto programe absolute()funkciu preťažíme . Na základe typu parametra odovzdaného počas volania funkcie sa vyvolá zodpovedajúca funkcia.

Preťaženie funkcií pomocou iného počtu parametrov

 #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ýkon

 Celé číslo: 5 Float number: 5.5 Integer number: 5 and double number: 5.5

Tu sa display()funkcia volá trikrát s rôznymi argumentmi. V závislosti od počtu a typu odovzdaných argumentov display()sa volá príslušná funkcia.

Funkcia preťaženia pre funkciu display ()

Návratový typ všetkých týchto funkcií je rovnaký, ale nemusí to platiť pre preťaženie funkcií.

Poznámka: V C ++ je veľa štandardných funkcií knižnice preťažených. Napríklad, sqrt()funkcia môže trvať double, float, int,atď. Ako parametre. To je možné, pretože sqrt()funkcia je v C ++ preťažená.

Zaujímavé články...