Kelebihan Fungsi C ++ (Dengan Contoh)

Dalam tutorial ini, kita akan belajar mengenai fungsi kelebihan beban di C ++ dengan contoh.

Dalam C ++, dua fungsi dapat memiliki nama yang sama jika jumlah dan / atau jenis argumen yang dilalui berbeza.

Fungsi-fungsi ini mempunyai nama yang sama tetapi argumen yang berbeza dikenali sebagai fungsi yang terlalu banyak. Sebagai contoh:

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

Di sini, keempat-empat fungsi adalah fungsi yang berlebihan.

Perhatikan bahawa jenis pengembalian keempat-empat fungsi ini tidak sama. Fungsi yang terlalu banyak mungkin atau mungkin tidak mempunyai jenis pengembalian yang berbeza tetapi mereka mesti mempunyai argumen yang berbeza. Sebagai contoh,

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

Di sini, kedua fungsi mempunyai nama yang sama, jenis yang sama, dan bilangan argumen yang sama. Oleh itu, penyusun akan membuang ralat.

Fungsi Overloading menggunakan Jenis Parameter yang Berbeza

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

Pengeluaran

 Nilai mutlak -5 = 5 Nilai mutlak 5.5 = 5.5
Mengendalikan beban berlebihan untuk fungsi mutlak ()

Dalam program ini, kami membebani absolute()fungsi. Berdasarkan jenis parameter yang dilalui selama panggilan fungsi, fungsi yang sesuai disebut.

Kelebihan Fungsi menggunakan Bilangan Parameter yang Berbeza

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

Pengeluaran

 Nombor integer: 5 Nombor terapung: 5.5 Nombor bulat: 5 dan nombor dua: 5.5

Di sini, display()fungsi dipanggil tiga kali dengan argumen yang berbeza. Bergantung pada jumlah dan jenis argumen yang dilalui, display()fungsi yang sesuai dipanggil.

Mengendalikan beban berlebihan untuk fungsi paparan ()

Jenis pengembalian semua fungsi ini adalah sama tetapi tidak perlu berlaku untuk fungsi yang berlebihan.

Catatan: Di C ++, banyak fungsi pustaka standard dibebani lebih banyak. Sebagai contoh, sqrt()fungsi boleh mengambil double, float, int,dan lain-lain sebagai parameter. Hal ini dimungkinkan kerana sqrt()fungsi ini berlebihan pada C ++.

Artikel menarik...