Selasa, 22 September 2009

Overloaded functions

Pada C++ 2 fungsi berbeda bisa memiliki nama yang sama di tipe maupun jumlah parameter
yang berbeda.

Contoh :

// overloaded function
#include
using namespace std;

int operate (int a, int b)
{
return (a*b);
}

float operate (float a, float b)
{
return (a/b);
}

int main ()
{
int x=5,y=2;
float n=5.0,m=2.0;
cout <<>
cout << "\n";
cout <<>
cout << "\n";
return 0;
}

Pada contoh di atas ada fungsi yang memiliki nama dan operasi sama, tapi tipenya
berbeda, ada yang int dan float. Compilernya tahu yang mana yang harus dipanggil dengan melihat tipe yang dilewati sebagai argumen. Kalau yang diipanggil 2 ints maka akan memanggil fungsi yang mempunyai 2 parameter int di prototypenya dan bila yang dipanggil 2 floats , akan memanggil fungsi yang memiliki 2 parameter float di prototype.

Saat pertama kali mengoperasikan dua argumen yang terlewati adalah tipe dari int,
lalu fungsi yang memiliki ; dipanggil. Saat yang kedua dipanggil ( dua argumen tipe float ). lalu prototype kedua dipanggil. Jadi, pemanggilan ini berdasarkan tipe dari argumennya karena sudah terjadi overloaded function.

Karena sebuah fungsi tidak bisa overloaded hanya karena return type.
Maka dari itu parameter harus memiliki tipe yang berbeda.

0 komentar:

Posting Komentar