Method Overloading
So, gimana cara compiler C++ membedakan method tersebut, padahal namanya sama? Compiler C++ menentukan fungsi dengan mengamati jumlah, tipe data dan urutan argumen. Nah, dari sini terang bahwa compiler memakai daftar parameter untuk membedakan fungsi dengan nama yang sama. Bukan membedakan dengan return type-nya (nilai balik).
Sehingga, untuk menciptakan method overloading diharapkan setidaknya satu dari tiga syarat di bawah ini:
- mempunyai jumlah argumen berbeda.
- mempunyai tipe data argumen yang berbeda.
- mempunyai urutan argumen yang berbeda.
Contoh #1 (jumlah argumen berbeda):
// method kali dengan dua argumen (bil1 dan bil2)
int kali(int bil1, int bil2) {
return bil1*bil2
}// method kali dengan tiga argumen (bil1, bil2 dan bil3)
int kali(int bil1, int bil2, int bil3) {
return bil1*bil2*bil3;
}
Method kali pada teladan di atas VALID sebab mempunyai jumlah argumen yang berbeda.
Contoh #2 (mempunyai tipe data argumen yang berbeda):
// method tampilkanNilai mempunyai argumen bertipe char
void tampilkanNilai(char nilai) {
cout << "Nilai (dalam huruf): " << nilai;
}
void tampilkanNilai(int nilai) {
cout << "Nilai (dalam angka): " << nilai;
}
Contoh method tampilkanNilai diatas VALID sebab mempunyai tipe data argumen yang berbeda walaupun mempunyai jumlah argumen yang sama.
Contoh #3 (urutan argumen berbeda):
// method kali dengan tipe data bil1 ialah int
// dan bil2 ialah double
double kali(int bil1, double bil2) {
return bil1*bil2;
}
// dan bil2 ialah int
double kali(double bil1, int bil2) {
return bil1*bil2;
}
Method kali di atas VALID sebab urutan argumen berbeda. Pada method kali yang pertama bil1 bertipe data int lalu diikuti oleh bil2 dengan tipe data double. Sedangkan pada method kali yang kedua, bil1 bertipe data double diikuti oleh bil2 yang bertipe data int.
PERLU DIINGAT!!!
Seringnya programmer melaksanakan kesalahan saat menciptakan method overloading ialah dengan menciptakan daftar parameter yang sama dengan return type (nilai balik) yang berbeda. Hal ini menghasilkan SYNTAX ERROR.
Contoh yang salah:
// return type: int
int hitungUmur(int umur)
{
return umur + 2;
}
void hitungUmur(int umur)
{
cout<<"umur siswa sesudah lulus kuliah= "<<umur+2;
}
SYNTAX ERROR. Method tidak sanggup di-overload sebab mempunyai jumlah argumen yang sama dengan tipe data yang sama.
Semoga bermanfaat... :)
0 Response to "Method Overloading"
Posting Komentar