hmm... sepertinya agak membingungkan mmg (soalnya gw eman blm baca maklum "nyewa" kompie di warnet... :)) tapi apa ada yang bisa menjelaskan dengan lebih sederhana...?
On Wed, 19 Sep 2007 03:09:17 +0100 (BST)
 ANTON CHANG <[EMAIL PROTECTED]> wrote:
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


========================================================================================
"Sambil berpuasa, ikuti Netkuis Ramadhan 1428 H. Menangkan Laptop, Ipod dan HP Nokia 
di akhir periode netkuis dan dapatkan Flash disk di tiap minggunya dengan mengikuti 
Netkuis di http://netkuis.telkom.net/";
========================================================================================

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

Kirim email ke