یک Function prototype هستش همین و بس!
تعریف نمونه یک تابع در برنامه نویسی به زبان C خیلی مرسوم بود! به علت تابعی بودن زبان C معمولا قبل از تعریف پیاده سازی توابع ابتدا یک نمونه ازش تعریف میکردن و استفاده میکردن بعد در زمان مناسب پیاده سازی تابع را انجام میدادن!
#include <iostream>
using namespace std;
char* a(char p){
return &p;
}
int main()
{
char* a(char c); //function prototype
cout << a('c')[0] << endl;
return 0;
}
حالا اگر به همون تعریف a یک (*) اضافه کنیم تبدیل میشه به یک اشاره گر تابع که می تونه به یک تابع دیگه اشاره کنه که بهش میگن delegation !
#include <iostream>
using namespace std;
char* func(char p){
return &p;
}
int main()
{
char* (*a)(char c); //function pointer
a = &func;
cout << (*a)('c')[0] << endl;
return 0;
}