Fungsi kelebihan beban di C++
Dalam penulisan kode sebenarnya, terkadang fungsi fungsional yang sama dapat memproses tipe objek yang berbeda, sehingga fungsi tersebut perlu diimplementasikan kembali, yang akan membuat kode menjadi lebih rumit. Untuk mengatasi masalah ini, C++ mendukung kelebihan fungsi untuk mengatasi masalah ini .
Misalnya, untuk soal penjumlahan aritmatika, Anda perlu menyesuaikan fungsi untuk menerima data yang masuk dan menjumlahkannya. Namun sebagai modul independen, bagaimana Anda mengetahui tipe data apa yang telah diteruskan oleh pemanggil? Boleh berupa data integer, tentu saja dapat berupa data bertipe floating point, atau dapat pula bertipe integer dan floating point (belum diketahui mana yang bertipe integer dan mana yang bertipe floating point), dan pendekatan komprehensif adalah dengan menggunakan berbagai Setiap jenis fungsi parameter formal harus memiliki satu fungsi yang ditentukan, yaitu dua tipe int, dua tipe ganda, int pertama dan ganda kedua, dan ganda pertama dan int kedua Tentukan empat fungsi untuk Implementasi, misalnya namanya: Add_double_double(), Add_int_double(), Add_int_int(), Add_double_int(), dll. Bukankah ini membingungkan?
Kemudian, munculnya fungsi yang berlebihan di C++ menyelesaikan masalah ini dengan sangat baik. Kelebihan fungsi adalah dua atau lebih fungsi dengan nama fungsi yang sama tetapi jenis atau nomor parameter berbeda, Berdasarkan jenis dan jumlah parameter, fungsi yang paling sesuai akan dipilih secara otomatis untuk panggilan yang mengikat, dan pemilihan diterapkan secara otomatis.
Misalnya saja pada contoh penjumlahan tadi:
#include<iostream>usingnamespacestd;intadd(inta,intb){cout<<(int,int)t;returna+b;}doubleadd(doublea,doubleb){cout<<(doble,double)t;returna+ b ;}doubleadd(doublea,intb){cout<<(double,int)t;returna+b;}doubleadd(inta,doubleb){cout<<(int,double)t;returna+b;}intmain ( ){cout<<tambah(2,3)<<endl;cout<<tambah(2.9,15.3)<<endl;cout<<tambah(10,9.9)<<endl;cout<<tambah(11.5,5 ) <<endl;kembali0;}
Hasil yang berjalan adalah sebagai berikut:
Harap baca kode dengan cermat. Untuk mengonfirmasi fungsi mana yang dijalankan, kami menambahkan pernyataan keluaran cout di dalam fungsi untuk membedakan fungsi mana yang dipanggil.
Setiap orang harus bereksperimen sendiri untuk memahami kodenya!