سلام .
فرض کنید مثلا شما یه کلاس Button درست میکنید به این شکل :
class Button
{
public:
Button(int x,int y,int (*onclick) (void* ));
virtual ~Button();
void Func1 (void);
void Func2 (void);
void Func3 (void);
void Func4 (void);
.... ..... ......
protected:
int (*pfn_onclick) (void*);
int x,y;
.....
.....
};
که این کلاس یه دکمه هست که رو یه Form یا Dialog ایجاد میشه . و شما میخواهید چند تا دکمه رو فرمتون درست کنید . و میخواهید هر دکمه وقتی که روش کلیک میشه کار خاصی رو انجام بده . پس شما از کاربر یک اشاره گر به یک تابع رو میگیرید که هر وقت روی دکمه کلیک شد اون اشاره گر به تابع رو صدا کنه .
حالا دو تا نمونه از کلاس Button درست میکنید . که یکی برای مثال عمل خروج رو داره و یکی عمل اینکه فقط یک پیغام رو نشون بده .
حالا ۲ تا تابع یکی برای خروج و یکی برای نشان دادن پیغام درست میکنید و آدرس اون رو به نمونه های ساخته شده میدید .
و حالا هر دکمه ای که روش کلیک بشه اون اشاره گر به تابع رو صدا میکنه . و اون اشاره گر هم به تابع مورد نظری که شما بهش دادین اشاره میکنه .
البته این فقط یک مثال هست . که چطوری یک اشاره گر به تابع میتونه کاربرد داشته باشه .