Argumen Default Fungsi C++: Cara Kerja & Praktik Terbaik
Argumen Default Fungsi C++
Jelajahi cara menetapkan nilai default ke parameter fungsi dalam C++, dengan contoh langkah demi langkah dan pedoman praktis.
Dalam C++, parameter fungsi dapat diberikan nilai default. Ketika pemanggilan menghilangkan argumen, kompiler mengganti dengan nilai default. Jika argumen disediakan, default diabaikan.
Cara Kerja Argumen Default
Pertimbangkan ilustrasi berikut:
temp() menggunakan kedua default.
temp(6) mengganti parameter pertama; yang kedua tetap default.
temp(6, -2.3) menyediakan nilai untuk keduanya, mengganti kedua default.
Memanggil temp(3.4) salahnya meneruskan double ke parameter int. Kompilator memotong nilai menjadi 3, menunjukkan bahwa tipe argumen harus sesuai dengan urutan deklarasi.
Contoh: Menggunakan Argumen Default
#include <iostream> using namespace std; // Prototype with default arguments void display(char = '*', int = 3); int main() { int count = 5; cout << "No argument passed: "; display(); // uses '*', 3 cout << "First argument passed: "; display('#'); // uses '#', 3 cout << "Both arguments passed: "; display('$', count); // uses '$', 5 return 0; } void display(char c, int count) { for(int i = 1; i <= count; ++i) { cout << c; } cout << endl; }
Output
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
Program berperilaku sebagai berikut:
display() menggunakan default c='*' dan count=3.
display('#') mengganti hanya argumen pertama; yang kedua tetap default.
Ketika kedua argumen disediakan, default diabaikan.
Menentukan default langsung dalam definisi fungsi juga valid dan sering kali lebih jelas:
#include <iostream> using namespace std; void display(char c = '*', int count = 3) { for(int i = 1; i <= count; ++i) { cout << c; } cout << endl; } int main() { int count = 5; cout << "No argument passed: "; display(); cout << "First argument passed: "; display('#'); cout << "Both arguments passed: "; display('$', count); return 0; }
Poin Penting yang Harus Diingat
Setelah parameter menerima nilai default, setiap parameter berikutnya juga harus memiliki nilai default. Contoh:
// Invalid void add(int a, int b = 3, int c, int d); // Valid void add(int a, int c, int b = 3, int d = 4);
Saat default ditentukan dalam definisi daripada prototipe, definisi harus mendahului setiap pemanggilan. Jika tidak, kompiler akan memberikan kesalahan.