genjuro wrote:
> ada yang bisa jelasin skrip berikut? saya bingung
bagaimana untuk 
> membuat pointer menjadi / di pass ke fungsi... thnks
atas bantuannya...
> // pointer to functions
> #include <iostream>
> using namespace std;
>
> int addition (int a, int b)
> { return (a+b); }
>
> int subtraction (int a, int b)
> { return (a-b); }
>
> int operation (int x, int y, int
(*functocall)(int,int))
> {
>   int g;
>   g = (*functocall)(x,y);
>   return (g);
> }
>
> int main ()
> {
>   int m,n;
>   int (*minus)(int,int) = subtraction; // ini dia
nih biang keroknya
>
>   m = operation (7, 5, addition);
>   n = operation (20, m, minus);
>   cout <<n;
>   return 0;
> }
>
kalau mau buat pointer menunjuk ke function
return_value (*namaptr) (parameter)
ket :
     -  return valuenya => harus sama dengan deklarasi
function
     -  namaptr => terserah anda
     -  parameter => harus sama dengan deklarasi
function

misal :
int CheckLogin( char * user, char * password)
{
  ....
}

int (*ptr)(char*,char*)=CheckLogin; // set variabel
ptr berisi alamat 
memory function CheckLogin, return value dan parameter
nya harus sama 
deklarasi functionnya
(*ptr)("Budi","Pass");

jadi :
menurutku tidak ada masalah dengan code di atas karena
output yang 
dihasilkan itu 8
int (*minus)(int,int) = subtraction;
// pointer variabel minus akan berisi alamat memory
dari fucntion 
subtraction

m = operation (7, 5, addition); 
// ketika memanggil function operation parameter
ketiga adalah nama 
function maka
di fuction operation parameter ketiga variabel pointer
functocall berisi 
alamat memory addition dan ketika
(*functocall)(x,y); // functocall akan memanggil
function addition 
karena functocall berisi alamat memory dari function
addition dan untuk 
mengakses memory tersebut maka dipakai * didepan
variabel pointer functocall

n = operation (20, m, minus); 
// paramater ketiga adalah variabel pointer minus dan
variabel minus 
tersebut berisi alamat memory dari fucntion
subtraction maka ketika 
operation (20, m, minus); parameter ketiga akan
mempassing isi dari 
variabel minus yaitu alamat memory dari function
subtraction jadi di 
fuction operation parameter ketiga variabel pointer
functocall akan 
berisi alamat memori dari function subtarction dan
seterusnya.

Maaf ya kalau penjelasannya agak membingungkan. Semoga
Bermanfaat.



Terima Kasih,
Anton













Send instant messages to your online friends http://uk.messenger.yahoo.com 

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke